問題タブ [coordinate-transformation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
430 参照

c# - GPU への座標変換のオフロード

WinForms を使用するレガシー マップ ビューア アプリケーションがあります。それは遅いです。(以前は速度は許容範囲でしたが、Google マップ、Google Earth が登場し、ユーザーは甘やかされました。今では、より高速であれば作成を許可されています :)

すべての明白な速度の改善 (キャッシング、並列実行、描画する必要のないものを描画しないなど) を行った後、私のプロファイラーは、ポイントをマップ空間からスクリーン空間に変換するときの座標変換が本当のチョーク ポイントであることを示しています。 . 通常、変換コードは次のようになります。

実際の実装はよりトリッキーです。緯度/経度は整数で表されます。精度が失われないように、2^20 (~ 100 万) を掛けます。座標はこのように表されます。

可能なスケール係数も 2 の累乗に明示的にバインドされていることが重要です。これにより、乗算をビットシフトに置き換えることができます。したがって、実際のアルゴリズムは次のようになります。

(UpperLeftPosition は、マップ空間の画面の左上隅を表します。) この計算を GPU にオフロードすることを考えています。誰かがそれを行う方法の例を教えてもらえますか?

.NET4.0 を使用していますが、コードはできれば Windows XP でも実行する必要があります。さらに、GPL の下のライブラリは使用できません。

0 投票する
1 に答える
562 参照

actionscript-3 - ムービー クリップを 4 つの座標に合わせる

私はアクションスクリプトに非常に関連していますが、ムービークリップに問題があります.

私は 4 つの座標を持っており、ムービー クリップをそれらに合わせる必要があるため、ムービー クリップの各コーナーは 1 つの座標にあります。

マトリックスと角度で変換することを見つけることができた唯一のもの(例を参照)ですが、これらはすべての角度などを計算するという私の問題の最良の解決策ではありません.

あなたが私の問題を理解し、解決策を知っていることを願っています。

必要なことを正確に行うように見えるので、画像を歪ませてみましたが、取得できないので、画像を表示します。座標は機能します。コメントされた部分のコメントを外すと、本来あるべき場所に白い再角が正確に表示されますが、更新時に削除されません。助けていただければ幸いです。ここに私のコードがあります:

0 投票する
2 に答える
15939 参照

svg - ストローク幅を現在の変換行列の影響を受けないようにする方法

SVG (および Canvas、Quartz、Postscript など) では、変換マトリックスはパス座標と線幅の両方に影響します。線幅が変わらないように調整する方法はありますか?つまり、次の例では、X と Y でスケールが異なるため、正方形が長方形になり、これで問題ありませんが、2 つの辺で線が太くなります。

長方形幅拡大ペン

多くの場合に役立つことがわかりますが、オプトアウトする方法はありますか? 別のペン TM を用意するか、CTM が円に変換する楕円にペンを設定できるようにしたいと思いますが、そのようなものは見当たりません。

それが欠けているので、SVG に CTM を伝えるのではなく、自分で座標を変換する必要があると思います。つまり、プリミティブrectpath同等のものに変換するということです。

0 投票する
1 に答える
1887 参照

opengl - openGL: glrotate の後に座標を取得する

glRotate の後に座標を決定しようとしています。

最初に

そして、glRotate を実行します

新しい更新された座標を取得するにはどうすればよいですか?

これはうまくいかないようです (何が間違っていますか?):

0 投票する
1 に答える
769 参照

c# - C# マトリックスが奇妙なマウス座標を与える

ポリゴンを描画するカスタム コントロールを作成しています。マトリックス計算を使用して、ポリゴンがコントロールに収まるようにスケーリングおよびせん断します。

いずれかのポリゴン内でマウスがクリックされたかどうかを知る必要があるため、レイ キャスティングを使用しています。

これはすべて個別にうまく機能しているようですが、使用しているディスプレイマトリックスに関連するマウス座標を取得する際に問題が発生しています。

次のコードを使用します。

現在、これは他のすべての座標セットで機能します。つまり、マウス座標の1つのペアは、マトリックスを通過したかのように正しい値を与えるように見えますが、その横のペアは、通過していないかのように値を与えます以下のマトリックスは、コントロールを下に移動したときに受け取ったマウス値の出力です。

{X=51,Y=75} {X=167,Y=251} {X=52,Y=77} {X=166,Y=254} {X=52,Y=78} {X=166, Y=258} {X=52,Y=79} {X=166,Y=261} {X=52,Y=80} {X=165,Y=265} {X=52,Y=81} { X=165,Y=268}

ポリゴンの描画に使用されるマトリックスが役立つ場合

前もって感謝します

0 投票する
1 に答える
1141 参照

python - Python座標変換/補間は可能ですか?

やあ!

私は実際にいくつかの地理データセットに取り組んでいます。元のデータを読み取るために python と pygrib を使用しています。pygrib は、「回転した」グリッドの素晴らしい経度/緯度の値を返します (プロットを参照)。私がしなければならないことは、データを直交する地理経度/緯度(メッシュグリッド)に持ってくることです。手作業で行うのは問題ありませんが、Pythonにはそれを行うパッケージがあると思いますか? はいの場合、ウェブで良いヒントを見つけました。

pygrib は、私のラトロンを計算するために投影について十分に知っているようです。それで、私のデータを別のプロジェクションに(補間で)変換するパッケージがどこかにあると思いますか?:)

おそらく、ヒントやリンクを教えてくれる人がいるでしょう。素晴らしいことだ!

感謝と最高の願い Reto Stauffer、オーストリア

0 投票する
1 に答える
3497 参照

vbscript - 緯度/経度を小数に変換する

緯度を含む大きなtxtファイルと、経度を含む大きなtxtファイルを小数に変換する必要があります。

私が持っているデータは現在の形式です:

このファイルの両方を小数に変換する必要があります(できればスクリプトを使用して)。これどうやってするの?

0 投票する
1 に答える
422 参照

opengl - CUDA で、カーネル関数で画面空間座標をワールド空間座標に変換する方法

ここでは、実際の 3D シーンにレイキャスティングを追加しようとしています。ご存知のように、レイキャスティングでは、レイをキャストするために、レイの方向を取得する必要があります。光線の最初の点は、glLookAt から取得できる光線の開始点です。光線の 2 番目の点は、画面内の各点です。元の CUDA レイキャスティング SDK では、以下のコードによってカーネル関数でスクリーン ポイントを取得します。

(x,y) は画面空間の座標ですよね? そのため、(x, y) をワールド空間座標に変換する必要があります。親切な人が、gluUnProject を使ってこの仕事をすると言った。いい考え!ただし、CUDA カーネルで OpenGL 関数を呼び出すことはできません。

可逆行列を使用して翻訳を行うことができるかもしれません。しかし、正しい方法についてはわかりません。CUDA カーネル関数で画面座標をワールド座標に変換する方法についてヒントをくれる人はいますか?

0 投票する
1 に答える
944 参照

java - Java コードの背後にある数学を理解する: 2D バイナリ空間分割

ここに示されている Binary Space Partitioning メソッドの実装を理解しようとしていました(このコードはアプレットとしても利用できますここ)。私はほとんどのコードを理解しましたが、メソッドを理解できません:

このメソッドの実装の背後にある座標ジオメトリを把握できていません。説明してもらえますか?