グラフィック関数 - グラフィック関数

njDrawPolygon3D

多角形を3D空間に描画

書式

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

引数

*p描画するポリゴンの頂点座標リスト
n描画するポリゴンの頂点の数
attrアトリビュート(描画方法を選択)

戻値

なし

解説

多角形を描画します。 設定可能な頂点数は最大32頂点です。 使用できるアトリビュートは以下の指定ができます。

多角形の状態

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描画関数である為、本関数を用いて描画を行う前に必ず
ビュー、スクリーン、及びマトリクススタック等の設定を行う必要があります。

備考

アトリビュート NJD_DRAW_NORMAL は他のアトリビュートと組み合わせて使用する場合は省略可能です。

njDrawPolygon3D
COPYRIGHT © SEGA ENTERPRISES, LTD., 1998