スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | 下へ |
投稿者 | スレッド |
---|---|
投稿数: 45
|
投稿日時: 2004-07-27 12:39 Re: 一発で |
SDKにあるこの関数はスクリーン座標系の一点(XY座標)をワールド座標系の一点(XYZ座標)として出力するものなので行列を渡すことは出来ませんが、何か理解が違うでしょうか? とりあえず現状ではアクティブな図面領域の左上、右上、左下の三点をサンプルとしてscreen_to_worldに処理させ、返ってきた座標を連立方程式解いて行列を逆算させています。
あまり綺麗なソースではないかもしれませんが、こんな感じでやってます。 | |
投稿数: 189
|
投稿日時: 2004-07-26 20:48 一発で |
引用:
screen_to world に 4×4 の単位行列を渡して、変換されて戻ってきた matrix がその「 どんな行列 」になると思いますが、それじゃダメですか ? | |
投稿数: 45
|
投稿日時: 2004-07-26 15:28 挑戦中 |
加藤さん、ありがとうございます。
とりあえず今は scene_interface::get_pixel_size() にて1ピクセルがShade空間中でどれだけのサイズか調べ、 scene_interface::get_view_rectangle() で、対象となる図面の領域を調べ、 scene_interface::screen_to_world() で基点となる(たとえば領域の左上の)スクリーン上での座標がShade空間中ではどんな座標になるのか、などを調べています。 最終的には4x4の行列にまとめてやって使うつもりです。 しかし、screen_to_world()の中でどんな行列をかけてるのか分かれば一発で出来るんですが、そういうのはないんですかねぇ(^^; screen_to_worldで何点かサンプル点を処理させて、そこから行列を逆算、とかのほうがスマートなのかな・・・少しは | |
投稿数: 189
|
投稿日時: 2004-07-25 10:44 三面図 |
こんにちわ、
ray さんのやりたいことは、三面図の1ピクセルの大きさが解ればいいのではないでしょうか。 script では pixcel size というので get できますから、SDK のなかで同じような名前で捜してみてはどうでしょう。 ちなみに、座標変換の関数はいくつか用意されているようですが、参考までに ( といってもこれは人から教えてもらった情報のまんまですが ) local_to_world : ローカル座標からワールド(グローバル)座標へ user_to_world : 現在表示されている座標からワールド座標へ current unit への変換、ローカル座標モードや、ろくろへの変換も含む world_to_perspective : ワールド座標から正規化された( 縦横:-1〜1、奥行き:0〜1 )透視座標系へ world_to_view : view 座標:視点が原点で、視線のを Z 軸とした座標系( カメラの傾きも考慮される ) world_to_device : device 座標:正規化された透視座標系から、縦横を実際のピクセル座標に一致するように変換した座標系 | |
投稿数: 45
|
投稿日時: 2004-07-25 03:19 追記 |
用語の意味するところが違っていたことに気がついたので補足です。
デバイス座標というのが実はレンダリング画像上での座標を表すということが(今更)分かったのですが、今行いたい処理は全く別物ですね。 正式になんと名前がついているのか分かりませんが、図面上での2次元座標(モニターでのXY座標)から三次元座標(一次元足りなくなりますが、それは三次元カーソルから取得するというShade本体と同じ仕様にするつもりです)へ変換する方法が分からないということで、質問の追記としておきます。 SDKドキュメントの中で座標系の話がちょろちょろと出てきますが、言葉の定義がしっかり書いてないと読みづらいですね・・・。 | |
投稿数: 45
|
投稿日時: 2004-07-25 00:48 デバイスからワールド座標系へ |
今作っているプラグインの中で
・現在アクティブな図面を調べる(一面表示のときだけでなく、四面図表示でも) ・その上に点列をばら撒き、それがワールド座標系ではどういう座標を持つか調べる という処理が必要になっています。 アクティブな図面を調べるのはなんとか出来そうなのですが、デバイス座標系(x,y)からワールド座標系(x,y,z)への変換はどう処理して良いのか分からなくて困ってしまいました。
というそのものズバリな名前の関数も、実はデバイス座標系から透視図へ(厳密にはちょっと違いますが)の変換だと分かり、じゃあ、三面図はどうしたらいいんだろう、と(ローカル座標とかろくろとか考えたら結構大変そうです) もし何か心当たりのある方などおられましたら教えていただけるとうれしいです。 SDKのバージョンはShade6 rev20です(Win版はShade7でも動きますね) | |
スレッド表示 | 古いものから 投稿するには登録が必要です | 前のスレッド | 次のスレッド | トップ |