void njDrawPolygon3D( *p, n, attr ) NJS_POINT3COL *p Int n Uint32 attr
*p | 描画するポリゴンの頂点座標リスト |
n | 描画するポリゴンの頂点の数(最大32) |
attr | アトリビュート(描画方法を選択) |
多角形の状態
NJD_DRAW_NORMAL | 多角形を描画 |
多角形の描画方法
指定なし | ワイヤーフレーム |
NJD_FILL | 塗りつぶし |
NJD_TRANSPARENT | 半透明 |
NJD_USE_TEXTURE | テクスチャあり |
上記の4つのアトリビュートを“|”で繋げることによって矛盾しない複数のアトリビュートを指定することが可能です。
100個の四角形をランダムに描画。 int i; int i; NJS_POINT3 point[4]; NJS_COLOR color[4]; NJS_POINT3COL p; p.p = point; p.col = color; p.tex = NULL; p.num = 4; for(i = 0; i< 100; i++){ int j; p.p[0].x = njRandom()*1000.f-500.f; p.p[0].y = njRandom()*1000.f-500.f; p.p[0].z = -3000.f+(float)i; p.p[1].x = p.p[0].x-polysize; p.p[1].y = p.p[0].y; p.p[1].z = p.p[0].z; p.p[2].x = p.p[0].x-polysize; p.p[2].y = p.p[0].y-polysize; p.p[2].z = p.p[0].z; p.p[3].x = p.p[0].x; p.p[3].y = p.p[0].y-polysize; p.p[3].z = p.p[0].z; for(j = 0; j < 4; j++){ p.col[j].argb.a = (Uint8)(0x80*njRandom()); p.col[j].argb.r = (Uint8)(0x80*njRandom()); p.col[j].argb.g = (Uint8)(0x80*njRandom()); p.col[j].argb.b = (Uint8)(0x80*njRandom()); } njDrawPolygon3D(&p, 4, NJD_DRAW_NORMAL|NJD_FILL); 本関数は3D描画関数である為、本関数を用いて描画を行う前に 必ずビュー、スクリーン、およびマトリクススタック等の設定を 行う必要があります。