njDrawPolygon3D | English
    ▲|INDEX|▼
3D空間にn角形を描画します。

### 書　式

      #include <Ninja.h>
      void njDrawPolygon3D(*p, n, attr)
      NJS_POINT3COL *p
      Int n
      Uint32 attr

### 引　数

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

### 返　値

  なし

### 機　能

  n角形を描画します。
  設定可能な頂点数は、最大３２頂点になります。
  使用できるアトリビュートは
  描画するn角形の状態を指定する

  NJD_DRAW_NORMAL | n角形を描画。

  n角形の描画方法を指定する (指定しない場合はワイヤーフレーム表示)

  NJD_FILL | n角形の内部を塗りつぶす。
  NJD_TRANSPARENT | 半透明で描画。
  NJD_USE_TEXTURE | テクスチャーを使用して描画。

  に大きく分かれます。上記の４つのアトリビュートを“|”で繋げる事によって矛盾しない複数の
  アトリビュートを指定する事が可能です。

### 用　例

  １００個の四角形をランダムに描画。

      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);

本関数は３Ｄ描画関数である為、本関数を用いて描画を行う前に必ずビュー、スクリーン、及びマトリクススタック等の設定を行う必要がある。

### 備　考

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

### 関　連

njDrawPolygon3D |
    ▲|INDEX|▼