AutoCAD 在内部使用任意轴算法,以便为使用对象坐标的所有图元生成任意但一致的对象坐标系。
假定一个作为坐标系的 Z 轴的单位长度矢量,任意轴算法将为坐标系生成相应的 X 轴。Y 轴可以通过应用右手定则来确定。
可以使用该方法检查给定的 Z 轴(也称为普通矢量)。如果它距离正向或负向世界 Z 轴很近,可以用给定的 Z 轴跨越世界 Y 轴到达任意 X 轴。如果不是很近,可以用给定的 Z 轴跨越世界 Z 轴到达任意 X 轴。所选的边界应该既便于计算又能在不同计算机上使用。为此,可以通过安装一种“方形”极轴封口来实现,该封口的边界是 1/64,可以用六位十进制分数和六位二进制分数精确指定。
算法如下(假定所有矢量都在三维空间中并在世界坐标系中指定):
假定普通矢量为 N。
假定世界 Y 轴为 Wy,它总是位于点 (0,1,0)。
假定世界 Z 轴为 Wz,它总是位于点 (0,0,1)。
现在我们寻找任意 X 和 Y 轴以便与普通 N 匹配。它们将被称为 Ax 和 Ay。N 也可以按如下方式称为 Az(任意 Z 轴):
如果 (abs (Nx) < 1/64) 且 (abs (Ny) < 1/64),则
Ax = Wy X N(其中“X”是跨产品运算符)。
否则,
Ax = Wz X N。
将 Ax 缩放到单位长度。
获得 Ay 矢量的方法如下:
Ay = N X Ax。将 Ay 缩放到单位长度。