草庐IT

学习OpenGL图形2D/3D编程

环境:Windows+VisualStudio2019最流行的几个库:GLUT,SDL,SFML和GLFW

浅谈affine_trans_point_2d与affine_trans_pixel

先看下两个坐标图谱:变换前:变换后: 我们根据1号点和9号点前后的关系,计算变换后其他点的坐标:这其实就是根据MARK点进行定位的原理 halcon代码:  执行结果: 我们发现,两种变换方式差别在于:affine_trans_pixel在变换前先减去0.5,变换后又加上0.5这样才会使结果和affine_trans_point_2d是一致的。(可以自己尝试一下不做加减0.5的操作去验证结果是否正确)这是因为affine_trans_pixel是基于亚像素概念,我们知道图像的最小单位是1pixel(1个像素就是一个方格),所以如果在一个像素内使用亚像素去表示像素的中心时,那中心点距离像素边缘是

【CSS笔记】CSS动画效果(2d、3d)之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画

这篇文章,主要介绍CSS动画效果(2d、3d)之渐变色、过渡、变换、平移、缩放、旋转、倾斜、关键帧动画。目录一、2d动画1.1、渐变色(1)线性渐变色(2)径向渐变色

Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例

目录前言什么是帧?什么是Aseprite?运行环境正文示例:绘制人物制作多帧动画微调导出精灵表总结作品欣赏附一个下载链接:前言什么是帧?我们看到的动画都是由一张张图片连续播放而成的,帧就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一幅静止的画面,连续的帧就形成动画。比如GIF文件的原理就是如此:9张图片构成的一个GIF实例 每秒钟帧数愈多,所显示的动作就会愈流畅。什么是Aseprite?Aseprite诞生于2013年,是一款专业的像素动画制作软件,提供丰富多样的像素绘图工具,用户使用该软件就可以在电脑上制作出各种像素风格的2D动画,还支持将正常的图像转换成像素风

Unity2D像素游戏开发——Aseprite简单人物绘画+动画制作导出精灵表示例

目录前言什么是帧?什么是Aseprite?运行环境正文示例:绘制人物制作多帧动画微调导出精灵表总结作品欣赏附一个下载链接:前言什么是帧?我们看到的动画都是由一张张图片连续播放而成的,帧就是影像动画中最小单位的单幅影像画面,相当于电影胶片上的每一格镜头。一帧就是一幅静止的画面,连续的帧就形成动画。比如GIF文件的原理就是如此:9张图片构成的一个GIF实例 每秒钟帧数愈多,所显示的动作就会愈流畅。什么是Aseprite?Aseprite诞生于2013年,是一款专业的像素动画制作软件,提供丰富多样的像素绘图工具,用户使用该软件就可以在电脑上制作出各种像素风格的2D动画,还支持将正常的图像转换成像素风

2D图像处理:相机标定

文章目录一、相机标定的是什么?二、四个坐标系2.1世界坐标系(X,Y,Z)2.2相机坐标系(x,y,x)2.3图像坐标系2.4像素坐标系三、坐标系间的变换关系3.1世界坐标系-->相机坐标系3.2相机坐标系-->图像坐标系3.3图像坐标系-->像素坐标系四、相机畸变模型4.1径向畸变4.2切向畸变一、相机标定的是什么?相机内参:fx,

在vscode中安装使用live Server(前端搭建自己的本地服务器环境)

一、在扩展中搜索liveServer,找到并下载,下载完后点击设置图标,点击扩展设置 二、点击在settings.json中编辑,在JSON中修改添加下列代码端口号可配,注意不要与其他服务冲突;AdvanceCustomBrowserCmdLine填写自己实际chrome的路径; 三、保存重启vscode,点击右下角的golive就可以了 四、在html中可以直接打开,在项目中,找到dist文件打开就可以了

c# - 如何在 C# 中调整多维 (2D) 数组的大小?

我尝试了以下方法,但它只返回一个搞砸的数组。T[,]ResizeArray(T[,]original,introws,intcols){varnewArray=newT[rows,cols];Array.Copy(original,newArray,original.Length);returnnewArray;} 最佳答案 array类中的大多数方法仅适用于一维数组,因此您必须手动执行复制:T[,]ResizeArray(T[,]original,introws,intcols){varnewArray=newT[rows,col

c# - 如何在 C# 中调整多维 (2D) 数组的大小?

我尝试了以下方法,但它只返回一个搞砸的数组。T[,]ResizeArray(T[,]original,introws,intcols){varnewArray=newT[rows,cols];Array.Copy(original,newArray,original.Length);returnnewArray;} 最佳答案 array类中的大多数方法仅适用于一维数组,因此您必须手动执行复制:T[,]ResizeArray(T[,]original,introws,intcols){varnewArray=newT[rows,col

从0-1一起学习live555设计思想之二 RTSP交互过程

流媒体服务系列文章目录流媒体服务系列前言一、OPTION二、DESCRIBE三、SETUP四、PLAY五、播放流程总结前言本篇文章通过代码去分析rtsp交互过程与工作原理。由于live555的继承关系太过复杂,所以做了个图简单记录一下与h264文件传输相关的类继承关系。一、OPTIONOPTION比较简单,就是客户端向服务端请求可用的方法。服务端收到客户端发来的OPTION指令后,调用函数handleCmd_OPTIONS进行处理voidRTSPServer