描画



draw [viewer] &rest thing [関数]

viewerthingを描く。 thingは、座標系、立体、面、エッジ、ベクトル、2つのベクトルのリストのどれでも可能である。 (progn (view) (draw (make-cube 10 20 30))) は、xwindowに立方体を描く。


draw-axis [viewer] [size] &rest thing [関数]

viewerの中にthingの座標系の軸をsizeの長さで描く。 thingは、座標系から得られるどのオブジェクトでも可能である。


draw-arrow p1 p2 [関数]

*viewer*p1からp2に向かう矢印を描く。


hid [viewer] &rest thing [関数]

viewerに陰線処理された画像を描く。 thingは、faceまたはbodyが可能である。


hidd [viewer] &rest thing [関数]

陰線を点線で描くことを除いて、hidと同じである。


hid2 body-list viewing [関数]

edge-imageオブジェクトで表現される陰線処理画像を生成する。 その結果は*hid*に置かれる。



\begin{emtabbing}
{\bf render}
\it\&key \= :bodies :faces (:viewer *viewer*) \\lq ...
... *light-sources*)\\
\> (colormap *render-colormap*) (y 1.0)
\rm
\end{emtabbing}

bodiesfacesにレイトレーシングを行い、陰面消去した画像を生成する。 viewing, viewportおよびviewsurfaceはviewerから得られる。 lightsは、light-source(光源)オブジェクトのリストである。 colormapは、Xwindowのcolormapオブジェクトである。 それぞれのbodiesfacesは、割り当てられるカラー属性を 持たなければならない。 colormapに定義されているカラーLUTの名前を:colorメッセージで 送ることによりカラー属性を設定できる。 一般にこの関数は、Xlib環境下でのみ働く。 demo/renderdemo.lのサンプルプログラムを見ること。


make-light-source pos &optional (intensity 1.0) [関数]

posの位置に光源オブジェクトを作る。 intensityは、デフォルトの光の強さを増す拡大比である。 もっと正確に強さを決定するためには、光源の:intensityメソッドを 使用する。


tektro file &rest forms [マクロ]

*tektro-port*ストリームのためにfileをオープンし、 formsを評価する。 これは、tektro描画の出力を直接fileに書き込むために使用される。


kdraw file &rest forms [マクロ]

kdrawは、kdrawまたはidrawで読み込めるポストスクリプトファイルを 生成するためのマクロ命令である。 kdrawは、:outputモードでfileをオープンし、 *viewer*を置き換えるためのkdraw-viewsurfaceとviewportを 作り、formsを評価する。 それぞれのformsは、drawhidのような描画関数の どれかを呼び出す。 これらのformsからの描画メッセージは、kdraw-viewsurfaceに 直接出力される。この出力はidrawkdrawで認識できる ポストスクリプト表現にメッセージを変換する。 そして、fileに蓄積する。 idrawまたはkdrawが呼び出されfileがオープンされたとき、 EusViewer windowに書いたものと同一の図形を見ることができる。 その図形は、idrawの機能で変更することができる。 そして、最終描画はepsfile環境を用いることによりLATEXドキュメント に組み込むことができる。 この機能は、"llib/kdraw.l"のファイルに記述されている。


pictdraw file &rest forms [マクロ]

pictdrawは、MacintoshのPICTフォーマットで画像ファイルを 生成するためのマクロである。 pictdrawは、file:outputモードでオープンし、 pictdraw-viewsurfaceを作り、*viewer*のviewportに置き換え、 formsを評価する。 formsは、それぞれdrawあるいはhidのような描画関数のどれかを 呼び出すものである。 これらの書式からの描画メッセージは、kdraw-viewsurfaceに 直接出力された後、PICTフォーマットへのメッセージに変換され, fileへ蓄積される。 このPICTフォーマットは、Macintoshのmacdrawteachtextで 認識することができる。


hls2rgb hue lightness saturation &optional (range 255) [関数]

HLS(Hue, Lightness, Saturation)で表現される色を、RGB表現に変換する。 HLSは、しばしばHSLとして参照される。 hueは、rainbow circle(0から360)の色で表現される。 0が赤で45が黄で120が緑で240が青で270が紫そして360が再び赤となる。 lightnessは、0.0から0.1の値を持ち、黒から白までの明るさを表現する。 lightnessが0のときは、huesaturationにかかわらず 黒となる。そして、lightnessが1のときは、白となる。 saturationは、0.0から1.0までの値を持ち、色の強さを表現する。 saturationの値が大きいと鮮明な色調を生成し、小さい値は弱く濁った色調 を生成する。 rangeは、RGB値の限界を示す。 もし、それぞれの色に8ビットの値が割り当てられているカラーディスプレイ を使っているならば、rangeは255とすべきである。 もし、RGBに16ビットの整数が仮想的に割り当てられているXwindowを使って いるならば、rangeは65536とすべきである。 HSVとHLSとの違いに注意すること。 HLSでは、鮮明な(rainbow)色はlightness=0.5で定義されている。


rgb2hls red green blue &optional (range 255) [関数]
RGBの色表現を、HLS表現に変換する。


2016-04-05