|
★ビューエリア内かどうかの判定
ビューエリア内かどうかをまず判定する必要があります。
ビューエリアを示す変数を、
左下の範囲開始点[mm](最小座標点):WD_x1、WD_y1
右上の範囲終了点[mm](最大座標点):WD_x2、WD_y2
とします。
作図しようとする座標点が、上記の領域のどこにあるのかを判定します。そのためには、
1)X方向(水平方向)
・WD_x1 よりも、左側か、右側か?
・WD_x2 よりも、右側か、左側か?
2)Y方向(垂直方向)
・WD_y1 よりも、下側か、上側か?
・WD_y2 よりも、上側か、下側か?
に分けて判定します。それぞれに、2ビットコードの値を割り当ててそれらを合成すると、以下のようなコード値を得られます。
このコード値が0であれば、その点は、ビューエリア内であり、0以外であれば、ビューエリア外にあります。
★ビューエリア内かどうかの判定
第1点(x1,y1)、第2点(x2,y2)を結ぶ線分があるとし、それぞれのコード値を、c1、c2、とします。
1)c1=0&c2=0:ビューエリア内にありクリッピング不要
そのまま線分を作図する
2)c1=c2 ≠ 0:ビューエリア外にありクリッピング不要
線分は作図しない
3)(c1 and c2)=0:ビューエリアをまたぐので
クリッピングして作図
4)(c1 and c2)>0:ビューエリア外にあり、またがないので
クリッピング不要、線分は作図しない
★ビューエリアの4線との交点計算
1)(c1 and 1)>0:直線 x=WD_x1 との交点計算が必要
計算結果がビューエリア外なら不採用
2)(c1 and 2)>0:直線 x=WD_x2 との交点計算が必要
計算結果がビューエリア外なら不採用
3)(c1 and 4)>0:直線 y=WD_y1 との交点計算が必要
計算結果がビューエリア外なら不採用
4)(c1 and 8)>0:直線 y=WD_y2 との交点計算が必要
計算結果がビューエリア外なら不採用
のようにするか、又は、
1)(c1=1):直線 x=WD_x1 との交点計算が必要
2)(c1=2):直線 x=WD_x2 との交点計算が必要
3)(c1=4):直線 y=WD_y1 との交点計算が必要
4)(c1=8):直線 y=WD_y2 との交点計算が必要
5)その他の場合:上記のいずれかとの交点計算
のようにするか、等があります。
線分の方程式は、
x−X1=(X2-X1)/(Y2-Y1)・(y−Y1)
ですので、上記の「x=〜」又は「y=〜」を代入して展開すればOKです。
x=(X2-X1)/(Y2-Y1)・(y−Y1)+X1
or
y=(Y2-Y1)/(X2-X1)・(x−X1)+Y1
なお、0で割り算をしないように注意して下さい。
★作図
クリッピング後のmm値座標を 画面dot座標に変換をして、描画します。
|
|
CAD装置(1)
CAD装置(2)
メディア
AutoCADの
DIESELマクロ
CSV
DXF
PCES
IGES
STEP
数学とCAD
▲PREV
▼NEXT
CAD作ろ!
|