C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[7]: DirectXにおける矢印つき線分(ベクトル)の描画


(過去ログ 46 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■24674 / inTopicNo.1)  DirectXにおける矢印つき線分(ベクトル)の描画
  
□投稿者/ Tetsu (1回)-(2008/09/08(Mon) 06:12:25)

分類:[C#] 

以前、パネル内でのベクトルの描画方法について質問をさせていただいた者です。よろしくお願いします。

以前取り組んでいたパネル内の描画方法では少し限界があると感じ、現在、DirectXを用いて3Dの描画空間を作り、そこに「矢印がついた線分」を描画したいと考えています。具体的には、いくつかの座標(x,y,zの3次元)をつなげ、最後の座標までつなげた後に、矢印を付加し、ベクトルを作りたいのです。

しかし、どのようにコードを作成すればよいのか、わからないのです。考えうるものは、

1.メッシュを作成する
2.シリンダーを作成し、2つの点を結ぶ円柱を作成する
3.作成したシリンダーをつなげるように表示してゆき、線分のように描画する。
4.最後の点のあたりに円錐を描き、矢印を表現する

というものですが、2のシリンダーを作成するまではいいのですが、そのシリンダーの配置位置の指定方法、配置向きの指定方法について、どのようにしたらいいのか、全くわかりません。

また、上に書いたような、円柱をいくつも描いて線分らしく見せる、という方法が有効なのかどうかもわかりません。もし、いくつかの点を一つの折れ線として表現できる方法があるのであれば、そちらを採用してもよいのではないか、と考えています。

DirectXについてあまり知識がないので、初歩的な質問なのかもしれませんが、どなたか助言をいただけると幸いです。よろしくお願いします。

なお、言語はC#を用いており、Visual Studio 2005を使ってプログラムを作成しています。
引用返信 編集キー/
■24675 / inTopicNo.2)  Re[1]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ 参考までに (1回)-(2008/09/08(Mon) 07:49:28)
No24674 (Tetsu さん) に返信
> 以前、パネル内でのベクトルの描画方法について質問をさせていただいた者です。よろしくお願いします。
>
> 以前取り組んでいたパネル内の描画方法では少し限界があると感じ、現在、DirectXを用いて3Dの描画空間を作り、そこに「矢印がついた線分」を描画したいと考えています。具体的には、いくつかの座標(x,y,zの3次元)をつなげ、最後の座標までつなげた後に、矢印を付加し、ベクトルを作りたいのです。
>
> しかし、どのようにコードを作成すればよいのか、わからないのです。考えうるものは、
>
> 1.メッシュを作成する
> 2.シリンダーを作成し、2つの点を結ぶ円柱を作成する
> 3.作成したシリンダーをつなげるように表示してゆき、線分のように描画する。
> 4.最後の点のあたりに円錐を描き、矢印を表現する
>
> というものですが、2のシリンダーを作成するまではいいのですが、そのシリンダーの配置位置の指定方法、配置向きの指定方法について、どのようにしたらいいのか、全くわかりません。
>
> また、上に書いたような、円柱をいくつも描いて線分らしく見せる、という方法が有効なのかどうかもわかりません。もし、いくつかの点を一つの折れ線として表現できる方法があるのであれば、そちらを採用してもよいのではないか、と考えています。
>
> DirectXについてあまり知識がないので、初歩的な質問なのかもしれませんが、どなたか助言をいただけると幸いです。よろしくお願いします。
>
> なお、言語はC#を用いており、Visual Studio 2005を使ってプログラムを作成しています。

http://www.jppass.com/lgp/
もしゲームを作られるのでしたら、もっと簡単にdirectxを使用して
作成できるツールがありますが
引用返信 編集キー/
■24677 / inTopicNo.3)  Re[2]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ Tetsu (2回)-(2008/09/08(Mon) 08:35:55)
No24675 (参考までに さん) に返信

参考までに さん、ありがとうございます。今回は、ゲームを作りたいのではなく、大学での研究で使用するプログラムを作成したいのです。自分自身で作成するプログラムが必要になりますので、ツールをそのまま使うことは考えていません。せっかく紹介いていただいたいのに、すみません。
引用返信 編集キー/
■24678 / inTopicNo.4)  Re[3]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ 渋木宏明(ひどり) (872回)-(2008/09/08(Mon) 09:13:13)
渋木宏明(ひどり) さんの Web サイト
矢印以外のモデルを表示する予定はありますか?

もし複雑な 3D モデルを表示する予定がないなら、無理に DirectX を使う必要はないと思います。

今なら WPF を使う、という手もあると思います。

また、それこそ矢印以外に何も登場しないなら、自前で座標変換するというのもアリなんじゃないかと。

引用返信 編集キー/
■24701 / inTopicNo.5)  Re[4]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ Tetsu (3回)-(2008/09/08(Mon) 14:37:55)
No24678 (渋木宏明(ひどり) さん) に返信

渋木宏明(ひどり) さん、ありがとうございます。

> 矢印以外のモデルを表示する予定はありますか?

今のところ、矢印のモデルのみです。今回はどうしてもDirectXを使用したいので、DirectXで線分を描く方法を探しています。

> また、それこそ矢印以外に何も登場しないなら、自前で座標変換するというのもアリなんじゃないかと。

あまりまだDirectXに詳しくないので、「自前で座標変換する」ということの意味がわからないのですが、座標変換という手法が使えるのですね。

どなたか、もう少し具体的に教えていただけないでしょうか。よろしくお願いいたします。
引用返信 編集キー/
■24727 / inTopicNo.6)  Re[5]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ 渋木宏明(ひどり) (873回)-(2008/09/08(Mon) 19:19:42)
渋木宏明(ひどり) さんの Web サイト
>DirectXで線分を描く方法を探しています。

DirectX に線分を描く API はありません。

「矢印のように見える立体物」を定義して、それを描画するのが DirectX 的には素直な解決策だと思います。

>「自前で座標変換する」ということの意味がわからない

立体物を構成する3次元の座標値を、表示画面の2次元座標に投影する変換(演算)のことです。

基本的には高校の数学程度の計算です。
引用返信 編集キー/
■24739 / inTopicNo.7)  Re[6]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ Tetsu (4回)-(2008/09/09(Tue) 01:14:38)
No24727 (渋木宏明(ひどり) さん) に返信

渋木宏明(ひどり) さん、ありがとうございます。

> DirectX に線分を描く API はありません。

そうですか。調べて見つからなかったので、もしかしたらそうかな、と思っていました。

> 「矢印のように見える立体物」を定義して、それを描画するのが DirectX 的には素直な解決策だと思います。

そうですか。渋木宏明(ひどり) さんでしたら、具体的にどのような手順を踏まれますか?もし差支えがなければ教えていただけないでしょうか。

> 立体物を構成する3次元の座標値を、表示画面の2次元座標に投影する変換(演算)のことです。

この方法で線分を表示したとして、3次元の空間を回転させると、この2次元の座標は見えなくなりますか?3Dにして、回転させても(つまり、どの視点からでも)線分がどのようになっているのかを見られるようにしたいと考えています。もしこの方法が簡単でかつ、視点を変化させても問題なく線分が表示されるのであれば、こちらの方法でも良いかもしれない、と思っています。よろしくお願いします。

引用返信 編集キー/
■24741 / inTopicNo.8)  Re[7]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ 渋木宏明(ひどり) (875回)-(2008/09/09(Tue) 07:41:13)
渋木宏明(ひどり) さんの Web サイト
2008/09/09(Tue) 08:48:09 編集(投稿者)

>>「矢印のように見える立体物」を定義して、それを描画するのが DirectX 的には素直な解決策だと思います。
>
> そうですか。渋木宏明(ひどり) さんでしたら、具体的にどのような手順を踏まれますか?もし差支えがなければ教えていただけないでしょうか。

「どんな矢印」を表示したいか、次第で手順は変わります。

プリミティブの組み合わせでやっつけられればそうするし、それで足りなければ「矢印のように見える物体」を構成する頂点座標データを1から作成します。

> この方法で線分を表示したとして、3次元の空間を回転させると、この2次元の座標は見えなくなりますか?

「座標が見えなくなる」というのはどういう意味でしょう?

>3Dにして、回転させても(つまり、どの視点からでも)線分がどのようになっているのかを見られるようにしたいと考えています。

常に対象の物体(この場合は矢印?)を表示画面内に収めたいなら、「そうなるように」視点の位置や視線の方向を調整します。

引用返信 編集キー/
■24742 / inTopicNo.9)  Re[5]: DirectXにおける矢印つき線分(ベクトル)の描画
□投稿者/ y4yama (79回)-(2008/09/09(Tue) 07:48:15)
No24701 (Tetsu さん) に返信
> 今のところ、矢印のモデルのみです。今回はどうしてもDirectXを使用したいので、DirectXで線分を描く方法を探しています。
こんちは。
まだDirectXも調査段階みたいですが、OpenGLを考慮したらどうでしょうか
DirectXはグラフィックカードやドライバの相性が色々で(私の環境では挫折しました)・・・

http://www.geocities.co.jp/SiliconValley/7406/tips/opengl/index.html

を参考にしたら、[ GLUTは使わないで !!]、PictureBoxに好きな3D図形を指定した向き・大きさに表示できます
連続した線分を表示できます。多分、矢印に相当する円錐面も可能かと。
PictureBoxでのマウスの動きを通常のイベントで取って、それで視点を回転させて再描画させれば3D図形を
回転できます。実際に業務のアプリで使えてますよ。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -