• ベストアンサー

Direct3D で立体地図(鳥瞰図)を描かせたい

WinXP + VB6SP5 + DX8.1bSDK の環境でプログラミングをしております。DirectX の Direct3D を用いて,高い所から見おろしたように描いた立体地図(=鳥瞰図)を描かせたいと考えております。具体的には,  height(x, y) = …  x = 0 ~ 511,y = 0 ~ 511 の地形データを入力し,光源の位置や視点の位置,表面の材質などを設定して,描画させたいと思います。 そのようなサンプルは本やホームページなどで簡単に見つかると高を括っておりましたが,実際に本屋で Direct3D の本を探しましたが適当な本は見つからず,またホームページを検索しても,やはり見つけ出せませんでした。 どんなヒントでも構いませんので,ご教授頂けないでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

やはり書籍は必要でしょう。VBを使った3Dゲーム作成の本等が参考になるはずです。 またSDKにはVB用のサンプルもついていたと思います。 それとDirectX8からは DirectDraw(2D)とDirect3Dは統合されてDirectGraphicsという名称になっています。 特にVBでDirectXを扱った日本語サイトは少ないみたいですね。

38endoh
質問者

お礼

実は,いくつかのホームページは見つけ,サンプルをダウンロードして多少は触っておりました。が,思い通りにはならず,マニュアルの必要性を感じておりました。はやり,専門書を買い揃える必要がありそうです。 地元の書店はどこも,DirectX かつ VB の本の品揃えが非常に悪かったため,今度の週末にでも秋葉原のパソコン専門店のブックコーナーをあたろうと思います。 このたびは,ご回答ありがとうございました。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.1

関連するQ&A

  • 土木、設計、3D表示に詳しい方教えて下さい。

    国土地理院の基盤地図にも地形図が載っていない、約100m四方のマイナーな湿地帯を3次元モデル(メッシュデータ、鳥瞰図のような)で表示させたいのですが、どうすればいいのでしょうか? GPSと測量により100箇所の平面直角座標(x ,y)とその地点の高さ(DL)が分かっています。 座標はエクセルに入っており、ArcGIS 、PCmapping、カシミール、フリーソフトを使ってなんとか3D表示をさせたいです。 すみませんが、出来るだけ詳しく3D表示の方法を教えて下さい。 よろしくお願いします。

  • Mathematicaでの3D散布図

    Mathematicaで3D散布図を描画しようとしています. Show内で,Graphics3D[Point[{x1,y1,z1}]],Graphics3D[Point[{x2,y2,z2}]],・・・というように,1プロットずつ記述しています. このとき,データごとにプロットの形状を”●”,”▲”,”■”などのように変更することは出来ますか? PlotMarkesrを使用することで,出来そうなのですが,Graphics3D内でPlotMarkersを記述するとエラーではじかれてしまいます. PlotMarkersはListPlotなどの関数じゃないと,使用出来ないのでしょうか? 公式サイトのヘルプは充実しているのですが,イマイチ分かりません. よろしくお願いします.

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

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

  • CGRect座標(cocos2d)について

    現在CGRectIntersectsRectを利用して当たり判定を実装しようとしています。 そこでCGRectIntersectsRectに対して指定する二つのCGRectについて質問させて下さい。 CGRectはx,y,width,heightで構成されていると思いますが、これで出来る四角形の示す位置がよくわかりません…。 x,y座標は画面左下からの位置だと思います。 x,y座標は四角形中心となるのでしょうか?それとも、四角形の左上の頂点を示す座標となり、そこから右へwidthの長さ、下へheightの長さを持つ四角形になるのでしょうか? また、これに関係するものについても、よければ質問させて下さい。 CGRect情報を使って四角形をプロットする関数を探して表示させようと、CGContextStrokeRectを見つけたのですが、なぜか表示されません…。 coocs2dで使う場合、何かしなければならないのでしょうか? ご存知の方いらっしゃれば、教えて下さい。 よろしくお願いします。

  • 長方形窓の立体角投射率

    現在、立体角投射率について学んでいます。 長方形の立体角投射率で悩んでおり質問させてもらいました。 光源面と受照面が垂直の場合に 立体角投射の法則 U=1/π∫s(面積S) cosθcosβ/r^2 dS を適用すると、図からcosβ=z/r, cosθ=y/r, r=√(x^2+y^2+z^2), dS=dxdy であるから Uv=1/π∫0~x∫0~y yz/x^2+y^2+z^2 dxdy  =1/2π(tan^-1 x/z - z/√(z^2+y^2)・tan^-1 x/√(z^2+y^2) となっています。(表記が分かりにくくすみません。) ただ、図からはr=√(y^2+z^2)としか読み取れないため、なぜ r=√(x^2+y^2+z^2)になるのかが分かりません。 また、 Uv=1/π∫0~x∫0~y yz/x^2+y^2+z^2 dxdy r=√(x^2+y^2+z^2)と仮定したとしても本来ならば Uv=1/π∫0~x∫0~y yz/(x^2+y^2+z^2)^2 dxdyになると思うのです。 様々な参考書を見たところ 1/2π(tan^-1 x/z - z/√(z^2+y^2)・tan^-1 x/√(z^2+y^2) の式はどうもあっているみたいなのでそれ以外の部分について修正などがありましたら教えていただけないでしょうか。 私に数学力がもっとあれば逆に計算していけばよいのですが・・・

  • Java3Dにおける再描画

    Java3Dで,例えば. (1.0+x,1.0+y,1.0+z)のBOXを,ボタンを押すごとにx,y,zにランダムの数値が入れ形状を変化させるプログラムを作りたいのですが,再描画の方法がわかりません. どなたか教えていただけないでしょうか?

    • ベストアンサー
    • Java
  • 頂点データからの3Dワイヤーモデル作成方法について

    XYZ座標系の頂点データから3Dワイヤーモデルを作る方法はありますか? 現在x、y、zの各値を持った頂点データがあるのですが、 そのデータから3Dのモデリングをする為の方法が分かりません。 対象の立体は複雑なものではなく立方体を組み合わせた簡単な形です。 フリーソフトなどで描画できるソフトなどがありましたらご教授ください。

  • 立体V = {(x,y,z)|x^2 + y^2 <= z <= 1}

    立体V = {(x,y,z)|x^2 + y^2 <= z <= 1}の体積|V|を求めよ。 という問題で、まず、答えを見ずに自分で x^2 + y^2 <= 1 x^2 <= 1 - y^2 x <= ±√(1 - y^2) ∫∫∫_V dxdydz =∫[0,1]dz 2*∫[0,1]dy 2*∫[0,√(1-y^2)] (x^2 + y^2) dx =π/2. …と計算しました。本の答えは |V| = ∫[0,1] (∫∫_(x^2 + y^2 <= z) 1 dx dy) dz = ∫[0,1]πz dz =π/2. …となっています。これでは肝心の ∫∫_(x^2 + y^2 <= z) 1 dx dy の部分が分かりません。 その結果が πZ になっているので どこかに Z が紛れ込んでるはずですがどこか分かりません。 この式を ∫[a,b] dx ∫[c,d] 1 dy の形で教えて下さい。 お願いします。

  • 画面上で立体を動かす?

    どこで聞けばいいのか分からないのでここで聞きます 昔、美術の時間に10cm四方の立方体を切ったりくっ付けたりして作品を作る授業があったのを最近思い出して作ってみようと思ったのですが 頭の中で、あ~でもないこ~でもない、と考えたり 紙に書いて考えてるのですが、なんか上手くいきません で、パソコンの画面で簡単に立体で見れる方法ってないでしょうか たとえば 点 X Y Z A 5 5 5 B 5 -5 5 C -5 -5 5 D -5 5 5 E 5 5 -5 F 5 -5 -5 G -5 -5 -5 H -5 5 -5 こんな感じに入力すれば立方体が表示されて ドラッグすればグリグリ立体を動かせて色々な角度から見れるようなのって 無いでしょうか?

  • 3D表現

    Flashで3D表現しようと奮闘しています。 といいましても、4つのメニューボタンが手前から置くにくるくると回転するというだけの表現です。 マウスカーソルの位置によって回転スピードは加速する仕掛けです。 そこで色々調べてみたのですが、 そもそもx軸とy軸しかFlashは持ちえていないのに、そこに立体表現をアクションスクリプトで組み込むとすれば、 奥行きのZ軸はどのように考えればいいのでしょうか。 cosシーターが、回転するボタンのx座標を表すとすれば、 sinシーターが何をあらわすことになるのでしょう? 奥行きになるのでしょうか? どうも二次元上の三次元表現というのがピンと来なくて困っています。

    • ベストアンサー
    • CSS

専門家に質問してみよう