12.2 例題プログラム CONTRAST.BAS の解説
目次へ戻る
- コントラストをハッチングで描き込むには、3DモデルにHLIGHTで光源をあて、HMIMAGで2Dモデルに変換し、それをHDISPで描いた投影図の上に、コントラストレベルに応じた色や模様を書き込めば、コントラスト表現ができます。投影図を線図(line drawing)で描く場合には、領域を線密度を変えてハッチングをします。このコマンドが HATCHC です。ただし、ハッチングの間隔は、明るい面ほど密に描きますので、ハッチングで描画するときには、光りの向きを逆に設定します。
- 多面体モデルを投影図にした平面図形モデルに変換するコマンドは HLIMAG と HMIMAG の2つが用意されています。凸多面体の場合には、この二つのコマンドによって変換された図形に差はありません。多面体の面の境界に凹となる接続があるとき、投影される面に重なりが生じることがあります。もし、このままハッチングの描画を行なうと、重なった領域に重複して線を引いてしまいます。二つのコマンド HLIMAG と HMIMAG によってえられる平面図形相違は、凹多面体にハッチングの描画をさせるときに現れます。 HMIMAG によって作図された図形では、領域内に正しくハッチングします。
- 例題のプログラムは、円柱表面にコントラストをつけるようにハッチングを描かせたものです。
10 PRINT "GEOMAP Demonstration Program"
20 PRINT "--- Hatching Lines are drawn after Contrast ---"
30 PRINT "--- Light Source is defined by POS ---"
40 PRINT "--- Hidden line Image by Map Specification ---"
50 CMINIT
60 PRCYLN "A", 30, , 10., 20., 1
70 CPOS(1)=60. : CPOS(2)=60. : CPOS(3)=20.
80 TH=0.6
90 DPCAM CPOS,TH
100 POS(1)=30
110 HLIGHT "A",POS,,16
120 HMIMAG "A","AIMAG"
130 CLS : HDISP "AIMAG"
140 HATCHC "AIMAG",0.5,30.
150 END
目次へ戻る