njDrawPolygon3D
3D空間にn角形を描画します。

書 式

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

引 数

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

返 値

なし

機 能

n角形を描画します。
設定可能な頂点数は、最大32頂点になります。

使用できるアトリビュートは

描画するn角形の状態を指定する
NJD_DRAW_NORMAL n角形を描画。

n角形の描画方法を指定する (指定しない場合はワイヤーフレーム表示)
NJD_FILL n角形の内部を塗りつぶす。
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