• ベストアンサー

Open GLによるプログラミングに関する質問

開発環境Visual C++2005 Express Edition Beta2、ライブラリはOpen GLです。この環境で、2次元空間内を半径0.5の黒点を不規則に移動させ、常時位置認識を(x-y座標において)をするプログラムを作成したいのですが、黒点の描画と規則的な移動しかできません。プログラミングの知識がないもので、どなかかプログラミングの方法を教えていただけないでしょうか。お願いします。

  • usiki
  • お礼率50% (1/2)

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

  • ベストアンサー
  • bulgaris
  • ベストアンサー率50% (8/16)
回答No.2

実装方法にも拠りますが、glVertex*()に与える座標を、前フレームにおける黒点位置と、現在のフレームで生成したランダムな移動ベクトルの加算で生成すれば良いと思います。 値の範囲は・・・大丈夫ですよね?

usiki
質問者

お礼

ありがとうございます。値の範囲は大丈夫です。助かりました。

その他の回答 (1)

  • bulgaris
  • ベストアンサー率50% (8/16)
回答No.1

現在の位置(2次元ベクトル)に移動分の(2次元)ベクトルを足していくのが アニメーションの基本だと思います。 で、1ステップ毎に移動分のベクトルを不規則に生成していけば、 黒点は不規則に移動していきます 不規則な移動ベクトルを生成する素朴な方法はrand関数を用いる手法です。 rand関数を用いて任意の範囲内に収まる値を生成します。 この値を移動ベクトルの各成分に割り当てれば、 不規則な移動ベクトルが生成できます

usiki
質問者

補足

回答ありがとうございます。Open GLで移動させるコマンドとしてgluLookAtしか使えないもので、これを用いるとrand関数との組み合わせがよくわからないです。他の方法でもいいので、簡単なプログラミングの手順を教えていただけませんか。

関連するQ&A

  • 3次元球面の曲率を考える時、なぜ4次元を考える?

    3次元球面の曲率や曲率半径を考えています。 『なっとくする 宇宙論』(二間瀬敏史)p101によると 半径Rの3次元球面を考えよう。これは4次元の平坦なユークリッド空間のなかの3次元球面を指す。平坦な4次元空間にデカルト座標系(x,y,z,ω)をとると、この球面の方程式は、 x^2+y^2+z^2+ω^2=R^2 となる。 (引用以上) 質問としては、なぜ3次元球面の曲率半径を考える時に4次元空間を考えるのでしょうか? どうしてω項が入るのでしょうか? よろしくお願いします。

  • 3次元空間にある円の最大最小Z座標

    3次元空間で、原点(0,0,0)に半径rの円があるとき、 この円のZ座標の最大最小を求めたいのですが、どのように考えればよいか、どなたかヒントをください。

  • 3Dの描画について

    3Dの描画について 今、Cで3Dライブラリを作っています。 そこで質問なのですが、 空間上に頂点の座標が与えられたポリゴンが複数あるとします。 それをカメラから遠いものから順に描画したいです。 うまく描画するためには、どのような基準をもって カメラからの遠近を判断すればよいのかわかりません。。。 どなたか、アドバイスを頂けないでしょうか。 よろしくお願いします。

  • C++のプログラミングで困っています

    私は趣味でプログラミングに挑戦しているのですが http://kougaku-navi.net/ARToolKit/index.html こちらのURLを参考に自作の3DモデルをサンプルのARマーカーから出力しようと試みているのですが エラーを吐かれて訳がわからない状況になってしまいました。 とりあえず、simpleLiteを少し改造して、任意のマーカーにキューブを描画はできたのですが イマイチやりたいことができません。 私がしようとしていることは、2つで ・ARマーカーごとにモデルを描画したい。 ・一つのARマーカーから上記のURLの忍者の3Dを出したい。 私の開発環境は OSはWindows8.1 Visual Stadio Express 2012

  • 【C++でOpenGL】平面から立体を作るには

    こんにちは。最近大学の研究にOpenGLを利用しようと思っている者です。 今,2次元座標上に平面図形を描画し,それを底面をその形のまま 3次元座標上に立体として起こす,という点で悩んでいます。 現在は,3次元座標上のx,y平面にGL_POLYGONで多角形を描画し, for文でz軸方向に繰り返し描画するよう設定していて, 擬似的に立体っぽくしてはいるのですが, 真横からみるとやはり平面と平面の隙間が目立って上手くいきません。 繰り返し回数を増やし,1回のz座標の増加量を小さくすると, 隙間はあまり目立たなくなるのですが,やはり実行時間が大幅にかかってしまいます。 OpenGLで底面が多角形の3Dオブジェクトを描画する方法を ご存知の方がいらっしゃいましたら,ぜひご指導お願い致します。 また,「こうした方がもっと効率良いのでは?」という意見もございましたら, ぜひお願い致します! 殆ど初心者ですので,受け答えなどに至らない点がございましたらすみません。

  • 3つの球の交点

    3次元空間中に座標・半径が既知の球面が3つあり、これらが2点で交わっている時、この2点の座標はどのように表されるのでしょうか? xyz直交座標系で考えるものとし、 3つの球は 1つ目の球:中心の座標(x1, y1, z1), 半径r1 2つ目の球:中心の座標(x2, y2, z2), 半径r2 3つ目の球:中心の座標(x3, y3, z3), 半径r3 で与えられるものとします。 何か参考になるウェブページや資料等をご存知の方、教えていただけませんか?

  • cygwinでのGUIプログラミングのしかたin Windows

    2ヶ月ほど前からC言語の勉強をしており、基本ライブラリ程度は使えるようになり、C++の文法を吸収しはじめてます。 そこで、そろそろGUIプログラミングをしたいなと思ったのですが、プログラミング環境としてはCUIが好きで、GUIアプリであるVisual C++などはできれば使いたくありません。というかマウス操作が頻繁なプログラミングは格好がわるい・・(変わり者でしょうか。) そこで耳にした(というかネットで調べまくった)のが、cygwinを使えばVisual C++などなしでもGUIプログラミングができるというような事柄なのですが、そういうようなことが書いてあるサイトって、ほとんどが(というか見たところでは全部が)、「しかし、ここではVisual C++で勉強をしていきましょう」などの内容で、cygwinでのGUIプログラミング方法について有用な情報を得ることはできませんでした。 なので、cygwinで本当にWindows用GUIプログラミングができるのか、もしそうであれば、その方法や大まかな流れなどのご教授、あるいはURIや書籍の紹介をしてほしく思います。

  • 大学 物理に詳しい方教えてください。

    半径aの二次元球面空間に対して、極座標系(θ、φ)を用いた際の計量テンソルを求め、この空間のリーマン曲率テンソルとスカラー曲率を求めよ。 ただし極座標系は          x=a・cosφsinθ                                                                y=a・sinφsinθ          z=a・cosθ とする。

  • 3Dグラフィック 多数の球の描画

    3次元で多数の球の描画をしたいのですが、何か良い方法はありませんでしょうか? 目の前に、障害物があった場合、その障害物の大きさ、数量の違いでどの程度視野が違うかを視覚的に表したいと考えています。 そのため、X座標、Y座標、Z座標とバブル径の寸法まで統一したいと思っています。 (各座標間隔が示す1とバブルの半径が示す1を見た目で同じサイズにしたいです。) よろしくお願いします。

  • 画像処理についての質問です。

    3次元アフィン変換を用いて輝度値の移動を行いたいと思っています。 そのために天頂角、方位角を使用し、どのようにアフィン変換の式を変形すればよいかわかりません。 シミュレーション球画像を使用し、半径、中心座標が既知です。

専門家に質問してみよう