AFsoft WebSite(エーエフソフト・ウェブサイト)
 

オペレーティング・システムについて

プログラミングについて
ホームページについて
キャドについて
電子カタログについて
書籍・雑誌
イベント
リンク集
数学とCAD クリッピングの計算
★ビューエリア内かどうかの判定
ビューエリア内かどうかをまず判定する必要があります。
ビューエリアを示す変数を、
左下の範囲開始点[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作ろ!
 
お問い合わせ 
本サイトはリンクフリーです
リンクバナー
(C)Copyright 1999-2015 By AFsoft All Rights Reserved.