用二维变换矩阵表示一个矩形(rect)
来源:互联网 发布:1998年湖北数据 编辑:程序博客网 时间:2024/06/15 23:26
在2d处理图形的时候,矩形(rect)被用到的地方相当的多。
最主要的是用在图像位置的表示上。
rect由4个数表示:x, y, width,height 或 left, top, right, bottom。
但是,如果图像发生了旋转(例如30度),rect就无法表示图像的位置了,有一种可行的表示方案是用4个点表示(x1,y1),(x2,y2)(x3,y3),(x4,y4).
adobe pdf 提供了一种利用二维变换矩阵(M)表示rect的高效方法:
用一个固定的rect 和一个变换矩阵(M)来表示。
为了方便运算,固定的rect的位置为: x=0, y=0,wdith=1, height=1;
最终的rect被认为是经过M变换后得到的新区域。
最终的位置处理巧妙的转换成了对矩阵的处理。在记录的时候,rect是固定的,无需记录,只需记录矩阵(6个数)即可,因此记录一个旋转矩阵用此方法只需6个数即可。
下面是依据此法,计算旋转图像的4个顶点(传入的是一个表示图像位置的矩阵):
void MatGetRectVertex(const double *m_in, double *vertex_out){ // llx vertex_out[0] = m_in[4]; // lly vertex_out[1] = m_in[5]; // ulx vertex_out[2] = m_in[4] + m_in[2]; // uly vertex_out[3] = m_in[5] + m_in[3]; // urx vertex_out[4] = m_in[4] + m_in[0] + m_in[2]; // ury vertex_out[5] = m_in[5] + m_in[1] + m_in[3]; // lrx vertex_out[6] = m_in[4] + m_in[0]; // lry vertex_out[7] = m_in[5] + m_in[1];}
0 0
- 用二维变换矩阵表示一个矩形(rect)
- Unity UI组件属性中的矩形变换(Rect Transform)的详解
- Rect 矩形
- 变换的矩阵表示形式
- 矩阵修改(二维线段树、矩形树)
- 计算机图形学(四)几何变换_2_矩阵表示_1_矩阵表示和齐次坐标
- 建立一个Shape类,有Circle(圆形)和Rect(矩形)子类
- Rect,RoundRect(矩形)对象(四)
- 二维图形的矩阵变换(一)——基本概念
- 二维图形的矩阵变换(一)——基本概念
- 二维图形的矩阵变换(一)——基本概念
- 计算机图形学(四)几何变换_4_二维复合变换_2_矩阵合并特性
- 空间坐标变换的矩阵表示法
- 变换矩阵在二维图形中的应用
- 画矩形 RECT FillRect
- bzoj1259: [CQOI2007]矩形rect
- 1259: [CQOI2007]矩形rect
- Unity3d--矩形Rect
- Qt之属性系统
- 致20岁的我
- jquery中attr和prop的区别
- php7 vs java8 vs nodejs5 vs lua5.2 计算性能比较
- 如何在hadoop中控制map的个数
- 用二维变换矩阵表示一个矩形(rect)
- HTML5 codecademy
- 两个队列实现一个栈
- 学习笔记——自定义Button,自带监听EditText是否空
- 如何使用才能让缓存更高效
- servlet---知识点深化---重定向/转发/字节流字符流共存问题/多个servlet输出问题/请求包含
- 几个关于内存的问题
- JS生成中文二维码
- 如何获得升迁