1.需求分析
在项目中,需要识别小车三个轮子的相对位置,这就需要对小车抽象出来的二维世界坐标进行缩放平移翻转,并将其转换到控件坐标显示到屏幕上。
2.解决需求
将小车抽象为二维坐标系的一个点P,完成对应数学模型的搭建,实现下列功能:
- 平移变换。
- 另取任意一点C作为缩放中心,对P坐标进行缩放变换。
- 沿X轴对称变换。
- 实现一个三角形从世界坐标系转换到屏幕坐标系,并正常显示.
3.解决问题
1.平移(Translation)
设平移的距离为t x和 t y ,原始坐标为P(x, y),则将t x和 t y加到原始坐标,可得一个新的坐标位置P’(x', y'),即实现二维坐标系的平移,如下图所示。
其表达式可为:
x'=x+tx y'=y+ty
将一对平移距离( tx , ty ),称为平移向量T。 则可使用下面的列向量来表示坐标位置和平移向量,然后将方程表示成单个矩阵等式。表达成:
; '
;
2.缩放(Scaling)
改变一个对象的大小,可使用缩放变换。一个简单的二维缩放操作可通过将缩放系数sx 和 sy
与原始坐标位置P(x, y)相乘而得。
其表达式可为:
缩放系数Sx 在x方向缩放对象,而Sy在y方向进行缩放。基本的二维缩放方程也可以写成矩阵形式: