アフィリエイト広告を利用しています

広告

posted by fanblog

2018年07月23日

《その428》立方体の各面を異なる単色で塗りつぶす


立方体の各面を異なる単色で塗りつぶす

 前回《427》の結果から、同一面上にある2つの頂点の色が異なると その2点間の色がグラデーションで表現されることが、確認できました。

 今回は、立方体の6つの面を 異なる6種類の単色で塗りつぶしてみます。

add_e012.png

add_e013.png

add_e014.png

add_e015.png


 下図のように頂点に複数の番号を割り当てることで、それぞれの面を異なる単色で塗りつぶすことができます。

add_e011.png

◆頂点0,2,3,1 は青色です。
 したがって、面0・2・3・1 は青色になります。

◆頂点9,11,15,13 は緑色です。
 したがって、面9・11・15・13 は緑色になります。

※例えば、頂点1,頂点9,頂点17 は同じ頂点です。
  頂点1 は青色の面を作成するときに
  頂点9 は緑色の面を作成するときに
  頂点17 はマゼンタ色の面を作成するときに、
 それぞれ使用します。

 下記はメッシュの頂点位置と色指定です。

static const VertexPositionColor cubeVertices[] =
{
{XMFLOAT3(-0.5f, -0.5f, -0.5f), XMFLOAT3(0.0f, 0.0f, 1.0f)}, // 頂点0
{XMFLOAT3(-0.5f, -0.5f, 0.5f), XMFLOAT3(0.0f, 0.0f, 1.0f)}, // 頂点1
{XMFLOAT3(-0.5f, 0.5f, -0.5f), XMFLOAT3(0.0f, 0.0f, 1.0f)}, // 頂点2
{XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 0.0f, 1.0f)}, // 頂点3
{XMFLOAT3( 0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 0.0f, 0.0f)}, // 頂点4
{XMFLOAT3( 0.5f, -0.5f, 0.5f), XMFLOAT3(1.0f, 0.0f, 0.0f)}, // 頂点5
{XMFLOAT3( 0.5f, 0.5f, -0.5f), XMFLOAT3(1.0f, 0.0f, 0.0f)}, // 頂点6
{XMFLOAT3( 0.5f, 0.5f, 0.5f), XMFLOAT3(1.0f, 0.0f, 0.0f)}, // 頂点7

{XMFLOAT3(-0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 1.0f, 0.0f)}, // 頂点8
{XMFLOAT3(-0.5f, -0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 0.0f)}, // 頂点9
{XMFLOAT3(-0.5f, 0.5f, -0.5f), XMFLOAT3(1.0f, 1.0f, 0.0f)}, // 頂点10
{XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 0.0f)}, // 頂点11
{XMFLOAT3( 0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 1.0f, 0.0f)}, // 頂点12
{XMFLOAT3( 0.5f, -0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 0.0f)}, // 頂点13
{XMFLOAT3( 0.5f, 0.5f, -0.5f), XMFLOAT3(1.0f, 1.0f, 0.0f)}, // 頂点14
{XMFLOAT3( 0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 0.0f)}, // 頂点15

{XMFLOAT3(-0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 0.0f, 1.0f)}, // 頂点16
{XMFLOAT3(-0.5f, -0.5f, 0.5f), XMFLOAT3(1.0f, 0.0f, 1.0f)}, // 頂点17
{XMFLOAT3(-0.5f, 0.5f, -0.5f), XMFLOAT3(0.0f, 1.0f, 1.0f)}, // 頂点18
{XMFLOAT3(-0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 1.0f)}, // 頂点19
{XMFLOAT3( 0.5f, -0.5f, -0.5f), XMFLOAT3(1.0f, 0.0f, 1.0f)}, // 頂点20
{XMFLOAT3( 0.5f, -0.5f, 0.5f), XMFLOAT3(1.0f, 0.0f, 1.0f)}, // 頂点21
{XMFLOAT3( 0.5f, 0.5f, -0.5f), XMFLOAT3(0.0f, 1.0f, 1.0f)}, // 頂点22
{XMFLOAT3( 0.5f, 0.5f, 0.5f), XMFLOAT3(0.0f, 1.0f, 1.0f)}, // 頂点23
};


 下記は三角形メッシュです。

static const unsigned short cubeIndices [] =
{
0,2,1, // -x
1,2,3,

4,5,6, // +x
5,7,6,

16,17,21, // -y
16,21,20,

18,22,23, // +y
18,23,19,

8,12,10, // -z
10,12,14,

9,11,15, // +z
9,15,13,
};




この記事へのコメント
コメントを書く

お名前:

メールアドレス:


ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバックURL
https://fanblogs.jp/tb/7922917
※ブログオーナーが承認したトラックバックのみ表示されます。

この記事へのトラックバック

たまに、クリック お願いします m(_ _)m

AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】 ★★ C++ 記事目次 ★★  ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】 ★★ こうすけ@C# ★★
・C# の初歩的な記事


検索
<< 2018年08月 >>
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
プロフィール
こうすけさんの画像
こうすけ

たまに、クリック お願いします m(_ _)m

AA にほんブログ村 IT技術ブログ C/C++へ

こうすけ:メール kousuke_cpp@outlook.jp

【1】 ★★ C++ 記事目次 ★★  ← 利用可能です。
・新版明解C++入門編 / 新版明解C++中級編
・その他 C++ 関連記事

【2】 ★★ こうすけ@C# ★★
・C# の初歩的な記事


×

この広告は30日以上新しい記事の更新がないブログに表示されております。

Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: