概要 - 任意の軸アルゴリズム(DXF)

任意の軸アルゴリズムは、AutoCAD が内部的に使用するものです。これにより、オブジェクト座標を使用するすべての図形に対する任意で定型のオブジェクト座標系が生成されます。

座標系の Z 軸として使用される単位長のベクトルが与えられると、任意の軸アルゴリズムは、その座標系に適合する X 軸を生成します。その後、右手の法則によって Y 軸が生成されます。

この方法では、与えられた Z 軸(「法線ベクトル」とも呼ばれます)が調べられます。それがワールド座標の Z 軸の正または負方向に十分に接近していれば、ワールド座標の Y 軸と与えられた Z 軸との外積が計算され、これが任意の X 軸となります。十分に接近していない場合は、ワールド座標の Z 軸と与えられた Z 軸との外積が計算され、これが任意の X 軸となります。十分に接近しているかどうかの決定には、境界が使用されます。これは、計算を容易にし、ハードウェアに依存しないためです。これは、一種の "正方形" の極キャップによって実現されます。境界の値は 1/64 で、これは 10 進数では小数点以下 6 桁、2 進数では 6 ビットで正確に指定することが可能です。

アルゴリズムは次のようになります(すべてのベクトルは 3D 空間にあり、ワールド座標系で指定されているものとします)。

Let the given normal vector be called N.
Let the world Y axis be called Wy, which is always (0,1,0).
Let the world Z axis be called Wz, which is always (0,0,1).

これから、法線 N に対する任意の X 軸および Y 軸を求めます。これを、Ax および Ay とします。次に示すように、NAz(任意の Z 軸)と呼ばれることもあります。

If (abs (Nx) < 1/64) and (abs (Ny) < 1/64) then
     Ax = Wy X N (where “X” is the cross-product operator).
Otherwise,
     Ax = Wz X N.
Scale Ax to unit length.

Ay ベクトルを求める方法は、次のとおりです。

Ay = N X Ax. Scale Ay to unit length.