
OpenGLでグラフィックを描いてるんですが
キーボードやマウスを使って次のことが
したいんですが、上手くいきません。
よいヒントをお願いします。
キーボードでしたいこと:
キーボードで何かを入力したら
グラフィックが既定の動作をする。
マウスでしたいこと:
マウスで動かした方向に
視点を回転させたい。
またホイールを上に回すと、拡大
ホイールを下に回すと、縮小。
上のプログラムを組む方法が
よくわからず上手くいきません。
視点を回転させる方は
static int x0, y0, z0;
switch (button) {
case GLUT_LEFT_BUTTON:
if (state==GLUT_DOWN) {
x0+=1;
gluLookAt(0.0, 75.0, 225.0, x0, 0.0, 0.0, 0.0, 1.0, 0.0);
glFlush();
}
break;
case GLUT_MIDDLE_BUTTON:
if (state==GLUT_DOWN) {
z0+=1;
gluLookAt(0.0, 75.0, 225.0, 0.0, 0.0, z0, 0.0, 1.0, 0.0);
glFlush();
}
break;
case GLUT_RIGHT_BUTTON:
if (state==GLUT_DOWN) {
y0+=1;
gluLookAt(0.0, 75.0, 225.0, 0.0, y0, 0.0, 0.0, 1.0, 0.0);
glFlush();
}
break;
default:
break;
}
という風にプログラムしてみたんですが
クリックするたびに視点が遠ざかり
最後には消えました・・・・。
No.3ベストアンサー
- 回答日時:
私は以下の方法でマウスによる視点の制御を行っています。
移動パラメータを _mx, _my, _mz 、
回転パラメータを _rx, _ry, _rz 、
マウスの移動量を dx , dy
として、
1.回転
_ry += dx ;
_rx += dy ;
_rz += dx ;
2.拡大縮小
_mz += dy ;
3.並行移動
_my += dy ;
_mx += dx ;
ホイール操作の場合は、移動量dyを回転量に置き換えてください。
視点の初期値、移動量、移動方向はお好みに合わせて調整してください。
また、視点の回転は、
『シフトキー押下しながらマウス移動』で1軸固定回転
などの制御を加えると、視点操作しやすくなると思います。
後は、実際に描画する時に、物体自体を移動させます。
// 移動
glTranslated( _mx, _my, _mz );
// 回転
glRotated( _rx, 1.0, 0.0, 0.0 );
glRotated( _ry, 0.0, 1.0, 0.0 );
glRotated( _rz, 0.0, 0.0, 1.0 );
// ここで、描画を行う。
これで、お望みの動きに近い事はできると思うのですが、どうでしょう?
以上、ご参考になれば幸いです。
No.1
- 回答日時:
外していたらすみません。
ごめんなさい。gluLookAt(eyex, eyey, eyez, centerx, centery, centerz, upx, upy, upz);
ってなっているので、視点を動かすなら
引数の前3つの方を動かすのでは・・・
> クリックするたびに視点が遠ざかり
ではなくて、中心が遠ざかっていったのではないかと。
あと、x0,y0,z0 って増加する一方ですよね。
クリックする度にいずれは・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript セレクトボックスを2つ選択してメッセージなどを表示するには。~運賃検索プログラムを完成させたい~ 1 2022/07/22 11:10
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript jsで、switch文で書かれた分をif文にできませんか。 1 2022/07/28 15:10
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- マウス・キーボード キーボード設定で困っています。長文です。 2 2022/12/10 12:44
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDF-XChange Viewerで、回転し...
-
図・図形の回転ハンドルが出ない
-
モータの回転数と速度の関係
-
エクセルやワードに挿入したイ...
-
機械系の授業で「P/R」という単...
-
単位の換算について
-
エクセルで図の回転
-
REVERSE(逆転)の反対語は何に...
-
カムの駆動トルク
-
パルスからrpmを求めたいです
-
パワーポイントに貼り付けた画...
-
ネジ締付速度と対象部にかかる...
-
Power Point へ挿入した図が回...
-
換気扇はメーカーによって回転...
-
新幹線での座席回転について
-
回転できる図形と回転できない...
-
次の計算方法を教えてください...
-
Excel グループ化した図形が回...
-
自転車のタイヤを回すジャイロ...
-
機械で、トルクオーバー異常っ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDF-XChange Viewerで、回転し...
-
図・図形の回転ハンドルが出ない
-
新幹線での座席回転について
-
パワーポイントに貼り付けた画...
-
エクセルで図の回転
-
REVERSE(逆転)の反対語は何に...
-
単位の換算について
-
機械系の授業で「P/R」という単...
-
モータの回転数と速度の関係
-
換気扇はメーカーによって回転...
-
エクセルやワードに挿入したイ...
-
カムの駆動トルク
-
回転できる図形と回転できない...
-
ヨーヨーが戻る原理について教...
-
直接基礎設計における回転ばね定数
-
Power Point へ挿入した図が回...
-
ネジ締付速度と対象部にかかる...
-
円柱と円盤を固定する方法
-
パルスからrpmを求めたいです
-
考えるカラス 車輪が倒れない理由
おすすめ情報