![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
いつもおせわになっています。
宇宙シュミレーター・MITAKAのような、空間内を自由に場所移動・視点移動できるプログラムを作りたい
http://www.gekkou.or.jp/g-3/ht3-08/event-p-mitak …
ので、自分なりにC/C++でGUI表示を調べてみました。
1.graphics.hを使う方法 ←標準Cのライブラリ?Borland社のライブラリ?
2.openGLを使う方法 ←無料ライセンスらしい。
3.Qtを使う方法 ←無料ライセンスらしい。
4.DirectXを使う方法
他にもあると思いますが、調べられませんでした。
開発環境は、Windows or Linux, gccを予定しています。
まず、Windowsでしか動かない4の選択肢が消えます(Linux環境でも動かしたいのです)。
次に、どうやらボタンとかリストとかしかできないようなので3が消えます。
残ったのは、1と2なのですが、2のライブラリで三次元空間内を自由に移動・視点移動させることはできるのでしょうか。
1で地道にオリジナルのライブラリを作成していくしかないのでしょうか。(といっても、C言語で「画面に線を引くこと」(BASICのLINE命令のようなもの)すらやり方がわからないのですが・・・)
イメージ的にはBASICのようなものをイメージしています。
書籍もいろいろ調べてみましたが、なかなかコレ!といったものに出会えず、どこから手をつけたらよいのか困っています。。
3D数学については覚悟が出来ているので、開発するための有効なライブラリや開発方法、オススメの書籍などお教えしていただけると幸いです。
また、カテゴリ違いなのですが、もしWebブラウザで同様の機能を持たせたアプリケーションをつくるとしたら、Javaのアプレットになるのでしょうか。Javaのアプレットで、ポリゴン?で出来た門の周りを視点移動するプログラムがありました。それともJavaScriptでLine関数のようなものを自作すれば、JavaScriptでも可能なのでしょうか?
以上、ご不明点ありましたら補足いたします。
よろしくご回答お願いいたします。
No.4ベストアンサー
- 回答日時:
★アドバイス
>OpenGLで私の希望するようなプログラムは書けますでしょうか。
>私の能力的に・・・ではなく、技術的にできるのかどうか。。。
↑
次のリンクを参考にして下さい。
http://wisdom.sakura.ne.jp/system/opengl/index.h …→『OpenGL入門』
http://wisdom.sakura.ne.jp/system/opengl/gl1.html→『OpenGLとは?』
・その他いろいろ
http://verygood.aid.design.kyushu-u.ac.jp/opengl …→『高速OpenGL講座』
http://www.komoto.org/opengl/→『OpenGL Programing』
http://www.wakayama-u.ac.jp/~tokoi/opengl/libglu …→『GLUTによる「手抜き」OpenGL入門』
>開発環境は、Windows or Linux, gccを予定しています。
↑
開発方法としては『マルチプラットホーム』で調べてみましょう。
『Qt』とか、『Java』などで開発をすれば良いでしょう。
『gcc』と『OpenGL』を組み合わせるならC/C++でも開発できそうですね。
>もしWebブラウザで同様の機能を持たせたアプリケーションをつくるとしたら、
>Javaのアプレットになるのでしょうか。
↑
Javaアプレットも良いが Flash プログラミングもお勧めします。
>それともJavaScriptでLine関数のようなものを自作すれば、JavaScriptでも可能なのでしょうか?
↑
可能であっても 3D までは難しいです。
速度が遅すぎます。
Webブラウザで動かすなら Flash または、Javaアプレットを使いましょう。
>アマゾンで書籍をみてみたところ、赤本、青本とあり、いずれもけっこう値段が高いのが難点ですね。。
↑
高価でも1冊は手元に置いておくべきです。
ネット情報よりも書籍の方がしっかりと解説されていますから。
書籍を中心にネット情報(掲示板、Q&Aでの質問)などを参考にしていけば良い。
参考URL:http://wisdom.sakura.ne.jp/system/opengl/index.h …
ご回答ありがとうございます。
質問があったので数点。
もしよろしければご回答ください。
>『Qt』とか、『Java』などで開発をすれば良いでしょう。
OpenGLのwikipediaで調べてみたのですが、OpenGLは独立したフレームバッファに書き出すため、OSに依存しない、というような趣旨のことが書いてありました(XWindowアプリとして開発する必要もない)。
Qt(「キューティー」かと思っていたら「キュート」と読むんですね)は、C/C++で使えるGUIアプリライブラリ群、JavaもSwingなどを使えばマルチプラットフォームでGUIアプリが作成できるようですが、これらとOpenGLは連携できるのでしょうか?
つまり・・・JavaやQtでつくったウィンドウ内でOpenGLで描画する、など。
>Webブラウザで動かすなら Flash または、Javaアプレットを使いましょう。
こちらについては、いろいろ調べてみたところ、JavaScript自体に描画する関数や機能はなく、<div>タグで囲ったオブジェクトをDOMで操作して、ドット絵のようにして描画することは可能、とのことでした。
ブラウザ上に線を引いたりグラフを書いたり・・・というようなことは、RIAの代表であるFlexやFlash、adobe AIRでやるのがよいみたいですね。ここらへんは最近の技術なのであまり理解していませんが、面白そうです。
>>アマゾンで書籍をみてみたところ、赤本、青本とあり、いずれもけっこう値段が高いのが難点ですね。。
赤本だと定価で13000円以上するので、私にはそうとうの覚悟か必要です。OpenGLをどの程度やりこむかまだ決めていないので、OpenGLの入門書で勉強してみて、つっこんで勉強する気になったら購入したいと思います。
Webアプリなどについてのご解答もいただきまことにありがとうございます。感謝です。
No.5
- 回答日時:
★アドバイス
>つまり・・・JavaやQtでつくったウィンドウ内でOpenGLで描画する、など。
↑
『Qt』の方は『OpenGL』に対応しています。
『Java』の方は私には分かりません。
ご自身で調べてみて下さい。
・まずはグラフィック(3D)の基礎の本を1冊くらい用意した方が良いでしょうね。
その後に『Qt』なり『C/C++』と『OpenGL』を組み合わせたプログラミングに
入ると良いでしょう。
(最初は Windows OS 限定とか、Unix系限定とかで作ってみた方良いと思う)
ご回答ありがとうございます。
>『Qt』の方は『OpenGL』に対応しています。
貴重な情報をありがとうございます。Javaについては自分で調べてみたいと思います。
C/C++にするか、Javaにするかはまだ決めかねていますが、まだアイデアレベルですので、まずはおっしゃるとおりCなどでグラフィックの基礎を勉強してから選んで生きたいと思います。
※締め切りは土曜夜か日曜を予定しています。
No.3
- 回答日時:
>Linux環境でも動かしたいのです。
すいません。この行見てませんでした。
OpenGL しか思いつきません。
(DirectX用ソフトをLinuxで動かす方法があったような)
ご回答ありがとうございます。
No2さんと同じ、OpenGLですか。
個人利用は無料だったと思うので、調べてみたいと思います。
ただ、アマゾンで書籍をみてみたところ、赤本、青本とあり、いずれもけっこう値段が高いのが難点ですね。。
OpenGLについて、描画イメージなど、動作したときこのように見える、というようなものをまだ見つけていないので、調べてみたいと思います。
No.1
- 回答日時:
選択肢はまず Windows & DirectX でしょう。
次に OpenGL でしょうか。
ある程度数学知識も必要です。
しかし、DirectX を簡単に扱うライブラリは無料のものが多くあります。
それらを見つければ比較的簡単に組めますよ。
単に3Dを扱いたければ HSP というスクリプト言語もあります。
ご回答ありがとうございます。
簡単に、となるとやはりDirectXなのですね。
Linuxでも動かしたく、調べてみたのですが、X86アプリケーションとしての3D開発、というものしか見つけられず、それだと当初の目的とは違ってしまいます(今度はWindowsで動かない)ので、困っています。
HSPについてはまったくの無知なので調べてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- iPhone(アイフォーン) 仕事でPDFファイルをダウンロード、閲覧するのにiBooksを使っていますが、ライブラリに凄い数のフ 2 2022/11/16 07:08
- 物理学 時間を語るなら、(複数の時間の正体)を知る必要が有る。 1 2023/02/16 22:14
- 日本語 [ 5-イ. 先生に本をもらった ] 11 2022/10/28 18:25
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Visual Basic(VBA) エクセルマクロでアニメを作る方法を教えてください。 1 2023/02/07 14:27
- 画像編集・動画編集・音楽編集 【急】【Zbrush】3DCG初心者です。ノートPCでのZbrush動作環境につきまして 1 2023/08/19 17:38
- その他(コンピューター・テクノロジー) PC利用中に勝手に起動する窓を消し去る方法を教えて下さい。 1 2023/05/08 16:48
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- システム 古いWEBシステム。もう追加プログラムは作れない? それともできる? 6 2022/06/08 13:41
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
じゃんけんゲーム(DXライブラ...
-
iCloudフォトライブラリ内の画...
-
お絵かきソフトプログラミング...
-
プログラマーで「使えない人」...
-
gmpxx.h
-
APIとMFC
-
場所変更後のwindows media pla...
-
設定ファイルを扱うライブラリ...
-
outp関数について
-
inttype.hが使えない
-
音声出力のライブラリ
-
VC7で作成したルーチンをC++Bui...
-
python urlopen error について...
-
宇宙シュミレーター・MITAKAの...
-
マウスのクリックを自動で
-
自作ゲームについて。
-
Ps+のフリープレイでDestiny2の...
-
win32APIの呼び出し
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows Media Playerを開くと...
-
Google ColaboでGUI作成
-
python urlopen error について...
-
iCloudフォトライブラリ内の画...
-
本格的なGUIを作るのにおすすめ...
-
Ps+のフリープレイでDestiny2の...
-
declaration of 'index' shadow...
-
LIBCMT.LIBをリンクしてコンパ...
-
ISOイメージの作成方法について
-
32768以上の乱数を作りたいので...
-
boostのアンインストールについて
-
ライブラリ作成時のグローバル...
-
iPhoneのカメラロールへ画像を...
-
Dreamweaverのライブラリが反映...
-
静的ライブラリから静的ライブ...
-
C標準ライブラリがwinAPIを経由...
-
音声出力のライブラリ
-
DirectX Graphics と OpenGLっ...
-
c言語でntpdateコマンドにあた...
-
じゃんけんゲーム(DXライブラ...
おすすめ情報