|
|
本来是,采用 pos, dir, front, 即一个位置,加上一个方向,还有一个前面朝向。
但问题是:如果front向量和dir向量不垂直,我还要重新计算front,
那么,可以减少front的数据量,不要用 front.x,y,z.
于是我考虑,可以求得一个与 dir 垂直的平面,然后,只需要 2 个坐标 x,y 就可以确定 front 方向
进一步看,我不需要知道 front 向量的 length , 那我干脆用极坐标,记录一个 theta 即可.
在进一步,我也不需要知道 dir 的 length,那么,可以用经纬度表示 dir.
typedef struct _TAG
{
VEC3 pos;
Float dir[2]; // a direction using the 经纬度
Float front; // theta分量 of 极坐标 of 方向向量 of 朝向 { ( which 表示 前面 ),( on 平面 which 垂直 with Dir向量 ) }
}TAG; // ベクトルDirと垂直する平面におけて前面を意味する方向ベクトルの?O座?摔?heta
|
|