Ninjaライブラリ - 3Dグラフィック関数

njDrawLine3D

3D空間に直線を描画

書式

void njDrawLine3D( *p, n, attr ) 
NJS_POINT3COL *p 
Int n 
Uint32 attr 

引数

*p   描画する線の端点座標リスト
 描画する線数
attr   アトリビュート

戻り値

なし

解説

スクリーン座標系に与えられた点データ*pを使用してn本の直線を描画します。 描画方法を指定するアトリビュートは以下のとおりです。

 NJD_DRAW_NORMAL   独立した線を描画 
 NJD_DRAW_FAN   放射状に線を描画 
 NJD_DRAW_CONNECTED   連結した線を描画 
 NJD_TRANSPARENT   半透明で描画 
 NJD_USE_TEXTURE   テクスチャを使用して描画 

矛盾しないかぎりこれらの指定を"|"で接続することで、複数のアトリビュートを同時に指定することが可能です。


用例

50本の線をランダムに描画します。
int i;
NJS_COLOR color[100];
p.p = point;
p.col = color;
p.tex = NULL;
p.num = 100;
for(i = 0; i < 100; i++){
 p.p[i].x = njRandom()*1000.f-500.f;
 p.p[i].y = njRandom()*1000.f-500.f;
 p.p[i].z = -njRandom()*1000.f;
 p.col[i].argb.a = (Uint8)(0x80*njRandom());
 p.col[i].argb.r = (Uint8)(0x80*njRandom());
 p.col[i].argb.g = (Uint8)(0x80*njRandom());
 p.col[i].argb.b = (Uint8)(0x80*njRandom());
}
njDrawLine3D(&p, 100, NJD_DRAW_NORMAL|NJD_TRANSPARENT);

備考

この関数は3D描画関数なので描画を行う前に必ず、ビュー、スクリーン、およびマトリクススタック等の設定を行う必要があります。 アトリビュートNJD_DRAW_NORMALは他のアトリビュートと組み合わせて使用する場合は省略可能です。

njDrawLine3D
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999