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

# njDrawPolygon3D

3D空間に多角形を描画

### 書式

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

### 備考

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

njDrawPolygon3D

COPYRIGHT © SEGA ENTERPRISES, LTD., 1998,1999