-PR-
  • すぐに回答を!
  • 質問No.6913623
解決
済み

お願いします。

  • 閲覧数392
  • ありがとう数0
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 50% (18/36)

IT関係の会社に内定をもらったのですが課題を出されました。
正直プログラミングなんて一度もやった事がなくて困っています。


三角形の面を定義する配列trianlglepを作成して、立方体を三つの頂点ごとの三角形で色分けするのをわかる方がいたら教えてください。お願いします。

#include <GL/glut.h>

GLdouble vertex[][3] = {
{ 0.0, 0.0, 0.0 }, /* A */
{ 1.0, 0.0, 0.0 }, /* B */
{ 1.0, 1.0, 0.0 }, /* C */
{ 0.0, 1.0, 0.0 }, /* D */
{ 0.0, 0.0, 1.0 }, /* E */
{ 1.0, 0.0, 1.0 }, /* F */
{ 1.0, 1.0, 1.0 }, /* G */
{ 0.0, 1.0, 1.0 } /* H */
};

int edge[][2] = {
{ 0, 1 }, /* ア (A-B) */
{ 1, 2 }, /* イ (B-C) */
{ 2, 3 }, /* ウ (C-D) */
{ 3, 0 }, /* エ (D-A) */
{ 4, 5 }, /* オ (E-F) */
{ 5, 6 }, /* カ (F-G) */
{ 6, 7 }, /* キ (G-H) */
{ 7, 4 }, /* ク (H-E) */
{ 0, 4 }, /* ケ (A-E) */
{ 1, 5 }, /* コ (B-F) */
{ 2, 6 }, /* サ (C-G) */
{ 3, 7 } /* シ (D-H) */
};

int plane[][4] = {
{ 0, 1,2,3 }, /* 面0 (A-B-C-D) */
{ 1, 5,6,2 }, /* 面1 (B-F=G-C) */
{ 2, 6,7,3 }, /* 面2 (C-G-H-D) */
{ 0,3,7,4 }, /* 面3 (A-D-H-E) */
{ 1, 0,4,5 }, /* 面4 (B-A-E-F) */
{ 4, 7,6,5 }, /* 面5 (E-H-G-F) */
};


void display(void)
{
int i;
glClear(GL_COLOR_BUFFER_BIT);

/* 図形の描画 */
//glColor3d(0.0, 0.0, 0.0);
//glBegin(GL_LINES);
glBegin(GL_QUADS);
for (i = 0; i < 6; ++i) {

switch (i) {
case 0 :
glColor3d(1.0, 0.0, 0.0);
break;
case 1 :
glColor3d(0.0, 1.0, 0.0);
break;
case 2 :
glColor3d(0.0, 0.0, 1.0);
break;
case 3 :
glColor3d(1.0,1.0,0.0);
break;
case 4 :
glColor3d(0.0, 1.0, 1.0);
break;
case 5 :
glColor3d(1.0, 0.0, 1.0);
break;
case 6 :
glColor3d(1.0, 0.5, 0.0);
break;
case 7 :
glColor3d(0.0, 1.0, 0.5);
break;
case 8 :
glColor3d(0.5, 0.0, 1.0);
break;
case 9 :
glColor3d(1.0, 0.5, 0.5);
break;
case 10 :
glColor3d(0.5, 1.0, 0.5);
break;
case 11 :
glColor3d(0.5, 0.5, 1.0);
break;
default:
glColor3d(0.0, 0.0, 0.0);
break;
}

glVertex3dv(vertex[plane[i][0]]);
glVertex3dv(vertex[plane[i][1]]);
glVertex3dv(vertex[plane[i][2]]);
glVertex3dv(vertex[plane[i][3]]);
}
glEnd();
glFlush();

}

void resize(int w, int h)
{
glViewport(0, 0, w, h);

glLoadIdentity();
// glOrtho(-2.0, 2.0, -2.0, 2.0, -2.0, 2.0);

gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0);
//glTranslated(0.0, 0.0, -5.0);
gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//課題はここを弄るだけ


}



void init(void)
{
glClearColor(1.0, 1.0, 1.0, 1.0);
}



int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGBA);
glutCreateWindow(argv[0]);
glutDisplayFunc(display);
glutReshapeFunc(resize);
init();
glutMainLoop();
return 0;
}
  • 回答数2
  • 気になる数0

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 56% (730/1282)

会社の課題だったんですね。
であれば尚の事、自分で考えないと意味がありません。安易に答えを求めてはあなたの為になりません。
これが最後の忠告です。ヤル気があるなら応援しますが、安易に答えを求めるなら会社に入ったときに仕事をやめるしかない状況に追い詰められるでしょう。あがけるのは今のうちです。

「OpenGLについて質問があります。 - C&C++ - 教えて!goo」
http://oshiete.goo.ne.jp/qa/6905979.html
  • ありがとう数0
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル11

ベストアンサー率 50% (92/181)

会社関係者がGoogle検索しないと思っていますか? 問題文の一部分をGoogle検索すれば、あなたの質問が一番にヒットしますよ。 ソースコードは非常にユニークなものなので、出典を特定することは容易です。 内部資料である研修課題を、外部に流出させていることになりませんか。 一発退場を食らうことはないだろうけれども、これは機密保持の観点からは、好ましくない状況かと。 敢えて、無理難題を与えて、その問題対応 ...続きを読む
会社関係者がGoogle検索しないと思っていますか?
問題文の一部分をGoogle検索すれば、あなたの質問が一番にヒットしますよ。
ソースコードは非常にユニークなものなので、出典を特定することは容易です。
内部資料である研修課題を、外部に流出させていることになりませんか。

一発退場を食らうことはないだろうけれども、これは機密保持の観点からは、好ましくない状況かと。
敢えて、無理難題を与えて、その問題対応能力を試しているのではないでしょうか。
会社関係者に助けを求めるのも、ひとつの解ですよ。
補足コメント
rtwrada

お礼率 50% (18/36)

実はこの質問自体嘘なんですw

会社ではなく、高校の夏休みの課題なんです。内容をIT関係の会社に内定をもらったと言ったほうが答えてくれるかなって思ったのでそういう風に言ってしまいました。

真面目に回答してくださってありがとうw
投稿日時 - 2011-08-04 01:06:55
  • ありがとう数0
  • 回答数2
  • 気になる数0
このQ&Aで解決しましたか?

関連するQ&A

-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


-PR-

ピックアップ

-PR-
ページ先頭へ