手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

怎样将点和向量转为齐次坐标

时间:2024-10-15 03:41:07

当进行 Direct 3D 编程时,我们需要先将要变换的点或向量转为齐次坐标,然后再通过矩阵来进行变换操作。那么,怎样将点和向量转为齐次坐标呢?

工具/原料

DirectX

一、为什么要转换为齐次坐标

1、进行 Direct 3D 编程时,需要使用4×4 的变换矩阵,这种矩阵可以定义所需要的各种变换。

怎样将点和向量转为齐次坐标

2、当进行坐标变换时,需要将空间中的点或 3D 向量与变换矩阵相乘。但是,空间中的点或向量都只有 x,y,z 三个坐标分量,而一个 3 维的点或向量是无法与一个4×4 的矩阵相乘的。

怎样将点和向量转为齐次坐标

3、因此,必须将点或向量扩展为一个四元组。这个扩展后的点或向量的四元组即称为齐次坐标。

怎样将点和向量转为齐次坐标

二、怎样将点或向量转换为齐次坐标

1、要将点或向量转换为齐次坐标,只需要处理好新增的第四个分量即可。在这里,我们通过将第四个分量定义为 0 或 1,来描述前面三个坐标分量是向量的还是点的坐标。

怎样将点和向量转为齐次坐标

2、如果第四个分量为 0,则前面x,y,z 三个坐标分量描述的是一个向量。

怎样将点和向量转为齐次坐标

3、如果第四个分量为 1,则前面x,y,z 三个坐标分量描述的是一个点。

怎样将点和向量转为齐次坐标

4、通过定义,我们同时得到以下性质:1)两点相减的结果是一个向量(因为两个点第四个分量都为 1,相减之后变为了 0)2)一个点与一个向量相加的结果是一个点(点的第四个分量为 1,而向量的第四个分量为 0,1+0=1,因此相加的结果是一个点)

怎样将点和向量转为齐次坐标
© 手抄报圈