摘要
坐标变换是图形学中很基本的操作。无论绘制二维还是三维图形都会遇到。下面将会讲到:如何根据坐标架进行点的坐标变换。
如何根据坐标架生成变换矩阵。
如何通过矩阵作点的坐标变换。
曲线、曲面方程如何作变换。
1、如何根据坐标架进行点的坐标变换
首先坐标架定义成:struct PNT3D{
double x,y,z;
};
struct FRAME{
PNT3D O, OX, OY, OZ;
}; 假设有一个点 p 定义在 frame 所在坐标系 WC(World Coordinate) 之中,也就是说 p 在 frame 之外。为了将 p 转入 frame,我们首先需要作平移 p1 = p – frame.O; 这个时候 p1 相当于定义在一个将 WC 平移到 frame.O 的一个坐标架之中。这个坐标架和 frame.O 供用坐标原点,但是三个坐标轴并不一定相同。为了得到 frame 中的三个坐标分量我们只须将 p1 和三个基矢量作点积 :WC->frame 变换公式:
p2.x = p1*frame.OX = (p-frame.O)*frame.OX;
p2.y = p1*frame.OY