• ベストアンサー

OpenGLで円筒つくり

OpenGLに関して教えていただきたいです。 次の手順で円筒を作りたいです。 1.作りたい円筒の半径と高さを入力 2.側面の筒の部分となる板を作成(2π×半径×高さ) 3.その板をぐるっと巻いて円筒を作成(上下の蓋は不要/中心は原点(0,0)) このようなことをやりたいのですが、 座標はどうなるか、とこんがらがってしまっています。 よろしければ、簡単にプログラミングしていただけないでしょうか。 Cでプログラミングしています(visualC++上)。 2から3へは適当なキーイベントを予定しています。

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

  • ベストアンサー
  • BearCave
  • ベストアンサー率20% (189/909)
回答No.1

板(ポリゴン)は丸めることはできませんので、細い板を沢山繋ぎ合わせて円柱を作ることになります。板が4枚だけなら立方体、6枚あれば六角柱、板の数を増やせば増やすほど円柱に近づくということです。10角形以上であれば円柱に見えるでしょう。 OpenGLで円柱を作るプログラムを解説したサイトを見つけたので載せておきます。

参考URL:
http://www.ccad.sist.chukyo-u.ac.jp/~mito/ss/program/C/DialogBase/openGL/solid/index.htm
negative-X
質問者

お礼

ご回答ありがとうございました。 なるほど10角形以上にする必要があるんですね。 ご紹介いただいたサイトも参考にさせていただきます。

関連するQ&A

  • 非回転体→体積

    xz平面をみると、原点を中心とした半径π/2の円があり、それがy軸を串にしたような形で円筒状になっている。 同様に、yz平面にも原点中心とした半径π/2の円があり、x軸を串としたような形で円筒状になっている。 この座標空間内の2本のパイプのz≧0における共通部分の体積を求めなさい。 こういう問題です。切り口を考えるのがポイントのようですが・・・ 立体を平面z=cosθ(0≦cosθ≦1 0≦θ≦π/2)で切断するとその切り口は1辺が2θの正方形になる ・・・正方形・・・なぜ? このへんから良く分からなくなってきました・・・。 ご回答よろしくお願いします。

  • 円形用紙

    直径31~32cm、円形の紙かラミネートを探しています。 1か所だけ、半径分を切り、わずかを重ねて何とか帽子のような円錐を作ります。 表面は成るべくすべりが良く強度のあるものを望みます。 本当にほしいのは1枚だけですが、5枚程度ならそれでもよいです。 また、何かの容器例えば、人形の丸い筒の上下の蓋を思い浮かべますが、今ありません。 ただ、これを買うわけには行きません。 また、タコグラフの記録用紙にもありそうですが、こんな大きなものがあるか分かりません。

  • VISUALC++6.0スタンダード版について

    プログラミングのレポートがでたのですがVISUALCは使ったことがなくてさっぱりわかりません。BORLANDCをつかって勉強したことがかなり昔にあるんですがその時はファイル新規作成してプログラムをうって実行させるとエラーまたは結果がでてました。でもVISUALCだとプロジェクトやらなんやらさっぱり解かりません。適当にしてるとファイルがないとかエラーがでるわけないのにエラーが出たりとか実行結果が出なかったりとわけわかりません。プログラミング自体ほとんど初心者です。3乗根をN-R法で求めるプログラムを直ちにつくらないといけないのですがVISUALCの使い方がさっぱりわからず焦ってます。とりあえず #include<stdio.h> int main() { printf("rarara\n"); } というプログラムさせ動かし方がわかりません。 どなたかアドバイスおねがいします。説明書読んでも分厚すぎるし時間がないしで メチャ困ってます。初心者でホントすいませんがおねがいします

  • JW-CADの使い方 超初心者です。

    アルミ板に穴を開ける位置を決めるため、簡単な製図をしたいと考えています。調べてみたらタイトルのソフトが有名そうなので、DLして使ってみましたが、ぜんぜん使い方が解りません。 やりたいことは、長方形(アルミ板の寸法)を書いて、その長方形の任意の場所に円(あける穴)を置きたいだけなのです。 適当に使っているうちに、任意の大きさの長方形を画面上に置くことまではできました。(左の「短形」というアイコンを選択し、寸法をいれ、画面上にでてきた長方形を2回クリックして確定) で、この長方形の任意の場所に円を起きたいのですが、どうすればいいのですか?円の半径を指定して(本当は直径で指定したい)、マウスで適当に置くことまではできました。しかし置く場所は、適当になってしまい、意味がありません。 イメージとしては、長方形の左下の角をx,y座標の原点として、おきたい円の中心点を(x、y)と指定しておきたいのですが、どうすればいいのでしょうか? こんな簡単なことをしたいだけなのに、どうしてこんなにもうまくいかないのだろうと嘆いています(被害妄想ですが…)。解説のページを見ても、家の図面の説明や、あまり関係のない説明ばかりで役に立ちません。 使い方、よろしくお願いします。

  • 電場の求め方

    問題1 半径 R1, R2 の無限に長い二つの円筒に電荷が、それぞれ面電荷密度 σ1, σ2 で一様に分布している。二つの円筒の軸が一致している場合に、生じる電場 を求めよ。 ===== 解答 ===== 対称性から電場は円筒の軸から放射状に生じ、その大きさは軸からの距離 のみに依存する。閉曲面として、円筒と軸が同じで半径 r ながさ l の円筒を 考える。円筒の上下の面に垂直な磁場は存在しないので、側面のみに注目してガウスの法則を適用すれば良い。 2πrlε0E(r) = 0 (r<R1のとき) 2πR1lσ1 (R1 < r < R2のとき) 2π(R1σ1 + R2σ2)l (R2 < rのとき) 従って、電場は E(r)= 以下略 問題 2 半径 R の無限に長い円筒の内部に電荷が、電荷密度 ρ で一様に分布して いる。円筒の内外に、生じる電場を求めよ。 ===== 解答 ===== 閉曲面は上と同様にとる。 2πrlε0E(r) = πr^2ρl (r<R のとき) πR^2ρl (r > Rのとき) 以下略 この2つの問題の2πrlε0E(r) =の式の右辺の違いが生じる理由がわかりません。なぜ問題1は2πRlσで問題2はπr^2ρlなのですか?

  • JIS-円筒竪型FRPタンクの変動液圧について

    JIS-円筒竪型FRPタンクの変動液圧について、どなたか御教授下さい。 タンクはφ2800×h5500(1375にて板厚4段階割) JIS-K-7012(1999)P21に、側板に作用する変動液圧の式として、 PW=PE(1-(x/h)^2)COSθ PE=√3/2・C1・kh・γ・h(相当液圧)とあります。 C1:0.45(自分でr/h変数グラフ作成してみた結果。) kh:0.9 γ:1.3g/cm3 x:各段1375ごと として計算しています。(すでに誤りがあるかもしれませんが。) その時の cosθ及び θ:地震の入力方向を原点とした周方向座標 の考え方を御教授下さい。 当方、文系出身のため、三角関数から調べ直すような段階ですが、 諸事情が有り必要に迫られ、現在JISに沿って設計勉強中です。 どうかお手柔らかにお願い致します。

  • JIS-円筒竪型FRPタンクの変動液圧について

    JIS-円筒竪型FRPタンクの変動液圧について、どなたか御教授下さい。 タンクはφ2800×h5500(1375にて板厚4段階割) JIS-K-7012(1999)P21に、側板に作用する変動液圧の式として、 PW=PE(1-(x/h)^2)COSθ PE=√3/2・C1・kh・γ・h(相当液圧)とあります。 C1:0.45(自分でr/h変数グラフ作成してみた結果。) kh:0.9 γ:1.3g/cm3 x:各段1375ごと として計算しています。(すでに誤りがあるかもしれませんが。) その時の cosθ及び θ:地震の入力方向を原点とした周方向座標 の考え方を御教授下さい。 当方、文系出身のため、三角関数から調べ直すような段階ですが、 諸事情が有り必要に迫られ、現在JISに沿って設計勉強中です。 どうかお手柔らかにお願い致します。

  • 3次元物体1から3次元物体2への座標変換式

    3次元物体1から3次元物体2への座標変換式 ある円柱の表面(側面、上下面)に分布する適当な点群を、別の場所の歪んだ円錐の側面に移動させたいと思っています。円柱は通常のいわゆる円柱ですが、円錐は通常の円錐を異なる2つの面でカットしたような形(円錐帯?)となっており、カットした面は平行ではありません。しかも円錐が歪んでおり中心軸は底面に直角ではありません。でも円柱の上下面はこの円錐帯の上下面に対応させ、円柱の側面は円錐帯の側面に対応させるような変換をする必要があるんです。ある空間を歪ませるような変換式になるかと思われますが、その考え方がわかりません。変換式の作り方のコンセプトのようなものを教えていただけないでしょうか。よろしくお願いいたします。図も添付させていただきました。

  • Lightwave10 サーフェイスの削除について

    Lightwave10での質感編集(Surface Editor)での削除なのですが、 削除コマンドがなぜかどこを探しても見当たらなく、消したいのですがどうやっても削除できません。 ひょっとしたらショートカットでもあるのかといろいろ試してみましたが結局消せず。。 このままだとUV作成も上手くできない(?)ようで 例えば 筒でUVを作成した際、上と下、側面で分けてUV作成すると思うのですが、 上下を新規UV作成したあとに 側面で追加作成しようとすると側面とくっついてしまい上手くUVテクスチャの作成が出来ません。。(本来なら同じUVのところにパーツを"分けて"配置出来るはずなのですが・・・) たぶん質感編集で先に間違えて 全体を選択 →サーフェイスを作成してしまったので 自動的にくっついてしまってるのだと思います。 そこでサーフェイスエディターから対象を削除をしたいと思った次第です。。 削除コマンド等もしご存知の方、何か対策をご存知の方がいらっしゃいましたらお教えいただけると助かります。 よろしくお願い申し上げます。

  • 非等速円運動

    半径 r の円筒が、軸O(円筒の円の中心)を水平にして固定されている。 Aは円筒内面の最下点、軸Oと同じ高さの円筒内面の点で左側にあるのをB, 右側にあるのをD、Cは円筒内面の最上点とします。 点Aに質量mの小球を置き、水平左向に初速度vを与える。 重力加速度をgとし、小球と円筒内面との摩擦、空気抵抗は無視できるものとする。 √(2gr)<v<√(5gr) のとき P は 弧BC(小さいほう)の間で円筒内面を離れ放物運動をする。 小球が円筒内面から離れる点をPとし、∠POC = αとします。 この小球がOを通るのはαとvはどのようなときか? 問題ではA、Dにくるときのを聞いていてキレイに求まったのですが コレは綺麗な数値で出ますでしょうか? 点Oを原点にxy座標を取って(Pでの小球の速さをVとして) x = Vtcosα - rsinα y = Vtsinα - gt^2/2 + rcosα で、未知数二つに式二つなので、解けるかなと思ったのですが、うまい具合にならないから手計算ではきれいには求まらないのでしょうか?

専門家に質問してみよう