トップページ > 記事閲覧
DrawPolygonIndexed3D関数
名前:教えてくだサイ 日時: 2018/09/26 16:35

if (CheckHitKey(KEY_INPUT_SPACE) == 1) { bouflg += 1; } // 4頂点分のデータをセット Vertex[0].pos = VGet(1000.0f, 200.0f + bouflg, 0.0f); //座標 Vertex[0].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[0].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[1].pos = VGet(2000.0f, 200.0f + bouflg, 0.0f); //座標 Vertex[1].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[1].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[2].pos = VGet(1000.0f, 200.0f + bouflg, 1000.0f); //座標 Vertex[2].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[2].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[3].pos = VGet(2000.0f, 200.0f + bouflg, 1000.0f); //座標 Vertex[3].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[3].dif = GetColorU8(255, 150, 80, 0); //RGB // 2ポリゴン分のインデックスデータをセット Index[0] = 0; Index[1] = 1; Index[2] = 2; Index[3] = 3; Index[4] = 2; Index[5] = 1; // 2ポリゴンの描画 DrawPolygonIndexed3D(Vertex, 4, Index, 2, DX_NONE_GRAPH, FALSE); DXlibの3D関数で三角形のポリゴン指定して四角形の平べったい物体を作ったのですがY軸だけ伸縮させたいんですがこのプログラムだと上に移動してしまうだけなのですが伸縮させる関数などはないでしょうか?
メンテ

Page: 1 |

Re: DrawPolygonIndexed3D関数 ( No.1 )
名前:管理人 日時:2018/09/27 01:34

すみません、『四角形の平べったい物体がY軸だけ伸縮している』状態がどのようなものなのか想像できません もう少し詳しくご説明していただけないでしょうか? m(_ _;m
メンテ
Re: DrawPolygonIndexed3D関数 ( No.2 )
名前:DSGxN 日時:2018/09/27 06:31

コードからの推測ですが… 初期位置は Y=200 に一枚の四角形   _ (厚みゼロ) キーを押すと _ ⇒ ■ のように、底面はY=200固定で、上面がY方向に延びて直方体に なるようにしたいが、頂点4つでできますか、ということかと思います。 頂点4つではできないので、頂点を8つ用意して、上面にあたる4つの頂点の座標のみ変化させた 直方体を描けば良いと思います。
メンテ
Re: DrawPolygonIndexed3D関数 ( No.3 )
名前:教えてくだサイ 日時:2018/09/27 13:34

DSGxNさんそういうことです!! 管理人さんわかりづらい文章でごめんなさいm(_ _;m 今頂点数を8にしたのですがまだならないっぽいです、、 ポリゴン数も増やさないといけないですか? Vertex[4〜7]まで増やしました if (CheckHitKey(KEY_INPUT_SPACE) == 1) { bouflg += 1; } // 4頂点分のデータをセット Vertex[0].pos = VGet(1000.0f, 200.0f, 0.0f); //座標 Vertex[0].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[0].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[1].pos = VGet(2000.0f, 200.0f, 0.0f); //座標 Vertex[1].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[1].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[2].pos = VGet(1000.0f, 200.0f, 1000.0f); //座標 Vertex[2].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[2].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[3].pos = VGet(2000.0f, 200.0f, 1000.0f); //座標 Vertex[3].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[3].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[4].pos = VGet(1000.0f, 200.0f + bouflg, 0.0f); //座標 Vertex[4].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[4].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[5].pos = VGet(2000.0f, 200.0f + bouflg, 0.0f); //座標 Vertex[5].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[5].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[6].pos = VGet(1000.0f, 200.0f + bouflg, 1000.0f); //座標 Vertex[6].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[6].dif = GetColorU8(255, 150, 80, 0); //RGB Vertex[7].pos = VGet(2000.0f, 200.0f + bouflg, 1000.0f); //座標 Vertex[7].norm = VGet(0.0f, 100.0f, -1.0f); //法線 Vertex[7].dif = GetColorU8(255, 150, 80, 0); //RGB // 2ポリゴン分のインデックスデータをセット Index[0] = 0; Index[1] = 1; Index[2] = 2; Index[3] = 3; Index[4] = 2; Index[5] = 1; // 2ポリゴンの描画 DrawPolygonIndexed3D(Vertex, 8, Index, 2, DX_NONE_GRAPH, FALSE);
メンテ
Re: DrawPolygonIndexed3D関数 ( No.4 )
名前:教えてくだサイ 日時:2018/09/27 13:45

すみません、今できたのですがもう一枚薄いのが出来てもう一枚が上に上がるだけになってしまいました。
メンテ
Re: DrawPolygonIndexed3D関数 ( No.5 )
名前:教えてくだサイ 日時:2018/09/27 15:00

ほんとに何度もごめんなさい。この立方体を作る関数があったので使ったらできました。 あともう一つあってモデルを回転させる関数でこの立方体を回転させることは可能ですか? DrawCube3D(VGet(50.0f, 50.0f, 50.0f), VGet(350.0f, 50.0f + bouflg, 75.0f), GetColor(0, 0, 0), GetColor(0, 0, 0), TRUE);
メンテ
Re: DrawPolygonIndexed3D関数 ( No.6 )
名前:DSGxN 日時:2018/09/27 21:45

ちなみに 頂点×8、インデックス×36 を定義して DxLib::DrawPolygonIndexed3D(Vertex, 8, Index, 12, DX_NONE_GRAPH, FALSE); のように36ポリゴンを描画する必要があります。 ※次のスレッドに続く
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存