openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
sakuru
記事: 5
登録日時: 12年前

openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

#1

投稿記事 by sakuru » 12年前

openGL、C言語ともにほとんどやったことのない初心者でどうやったらいいかわからず困ってます。

教授に1週間で形にしてきてって言われて非常に焦っているので、
やり方やもしくはヒントを教えていただけませんか?
無茶な質問をして申し訳ございませんが、お答えしてくれたらうれしいです。


補足
・今週C言語およびopenGLの勉強を始めたばかりです。
・Microsoft VisualC++6.0を使用しています。
・球の縮小・拡大、移動、回転も出来たらやりたいと思っています。
・特に困っているのは、メッシュの切り方です。
添付ファイル
kyuu2.jpeg
kyuu2.jpeg (37.12 KiB) 閲覧数: 2496 回


sakuru
記事: 5
登録日時: 12年前

Re: openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

#3

投稿記事 by sakuru » 12年前

ご迷惑おかけしました。

もう少し理解してから、
後日あらためて聞かせていただくことにします。

そのときは、またご指摘お願いいたします。


sakuru
記事: 5
登録日時: 12年前

Re: openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

#5

投稿記事 by sakuru » 12年前

お久しぶりです。
glutWireSphereを教えてくださった方ありがとうございました。
お礼遅くなり申し訳ございません。

また新たに課題が出たのですが,
次は与えられたテキストファイル形式の節点座標と節点番号を
読みとって上の画像を描くというものです。

先輩からbisualBasicでほとんど同じことを
しているデータをいただいので,
どのようにしていくかってのはある程度理解できました。
しかし,何点かわからなかったところがあるので
聞きににきました。

先輩のVBのプログラムのデータの中に
Dim xx1(18000), yy1(18000), zz1(18000) As Double     ←xx1~zz4は節点座標の宣言です
Dim xx2(18000), yy2(18000), zz2(18000) As Double
Dim xx3(18000), yy3(18000), zz3(18000) As Double
Dim xx4(18000), yy4(18000), zz4(18000) As Double
Dim Ment1(8000) As Integer               ←Ment1~Ment4は節点番号の宣言です   
Dim Ment2(8000) As Integer
Dim Ment3(8000) As Integer
Dim Ment4(8000) As Integer
Dim x1, x2, x3, x4, y1, y2, y3, y4, z1, z2, z3, z4 As Double

と宣言して次に

For I = 1 To ntp           ←ntpは節点座標(x,y,z,を一組とする)の総数です
b = file.ReadLine()
xxx(I) = Val(Mid(b, 1, 10))
yyy(I) = Val(Mid(b, 11, 10))
zzz(I) = Val(Mid(b, 21, 10))
Next I
Dim c As String
For I = 1 To nt
c = file.ReadLine()
Ment1(I) = Val(Mid(c, 1, 5))
Ment2(I) = Val(Mid(c, 6, 5))
Ment3(I) = Val(Mid(c, 11, 5))
Ment4(I) = Val(Mid(c, 16, 5))
Next I


For I = 1 To nt          ←ntは節点番号(四角形1,2,3,4を一組とする)の総数です
x1 = xxx(Ment1(I)) * ascale
y1 = yyy(Ment1(I)) * ascale
z1 = zzz(Ment1(I)) * ascale

x2 = xxx(Ment2(I)) * ascale
y2 = yyy(Ment2(I)) * ascale
z2 = zzz(Ment2(I)) * ascale

x3 = xxx(Ment3(I)) * ascale
y3 = yyy(Ment3(I)) * ascale
z3 = zzz(Ment3(I)) * ascale

x4 = xxx(Ment4(I)) * ascale
y4 = yyy(Ment4(I)) * ascale
z4 = zzz(Ment4(I)) * ascale

とあるのですがここでの意味は,
x1で四角形を構成する4つの節点座標を読み取って倍率している
といことであっているでしょうか?
C言語の掲示板でこのようなVBの質問をしてしまい申し訳ございません。

これをC++とopenGLで
書き換える場合最後のところの
x1 = xxx(Ment1(I)) * ascale
はそのまま扱うことはできますか?
倍率指定はなくなってもいいです。

見づらいですがよろしくお願いします。

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

#6

投稿記事 by h2so5 » 12年前

先輩に聞くのが早いと思います。
中途半端な情報でここの部外者に聞いたところで正確な答えは期待できないでしょう。

sakuru
記事: 5
登録日時: 12年前

Re: openGLを使って下記の図のような球を四角でメッシュしているものを作りたいのですが。

#7

投稿記事 by sakuru » 12年前

試行錯誤した結果エラーを無くすことができました。
解決です。

閉鎖

“C言語何でも質問掲示板” へ戻る