問題タブ [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 投票する
2 に答える
3046 参照

python - (Alt, Az) から (Ra, Dec) への pyephem 変換とその逆は、内部的に一貫性がありません

(Alt, Az) を (Ra, Dec) に変換してから PyEphem に戻すと、元のものが得られないことがわかりました。以下は簡単な例です。

コメントで指摘されているように、30 インチはウィキペディアで述べられている最大効果の 20 インチを超えていますが、北極を正確に取得できないのは星の異常にすぎない可能性があります。

逆算しても同じ結果が得られないという事実は、私を本当に困惑させます。助言がありますか?

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

3d - 地球から太陽への座標変換

私は太陽系の 3D モデルを構築しており、惑星を正しい方向に正しい量だけ傾けるために、各惑星の北極星の位置を把握する必要があります。北極星の位置の情報はすでに見つけました。問題は、これらが地球の相対座標にあることです。たとえば、火星の北極星は赤経 20 時間 22 分 13.70184 秒、赤緯 +40° 15 分 24.0450 秒のガンマ シグニです。

赤経 (RA) は、本初子午線から数時間東にあります。赤緯 (Dec) は、赤道からの北 (+) または南 (-) 度です。これらが一緒になって、すべての星を想像できる架空の天球上の位置を定義しますか?

では、これらの座標から、天球上の遠く離れた場所にある星の位置を定義するベクトルに移動するにはどうすればよいでしょうか?

ThreeJSを使用しています。この質問は、球の原点、または少なくともそのテクスチャの定義に関する部分的な解決策を示しています。

編集私はphysics.stackexchange.com ここに同じ質問を投稿しました

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

javascript - three.js:座標をカメラ空間からシーン空間に変換する

シーンではなく、カメラを基準にして立方体を配置しようとしています。シーンに配置するには(表示させる必要があります)、立方体のカメラ空間座標に対応するシーン座標を知る必要があります。この関数「projectionMatrixInverse」をTHREE.Cameraで見つけました。これには「multiplyVector3」と呼ばれる優れた関数があり、ベクトル(1,1,1)を次のようなシーン空間に変換できるようになることを望んでいました。

事は、私が得るコンソールで:

myvecmultiplyVector3は、コンソールがオブジェクトであると言っていても、単にmyを受け入れないか、未定義であると言います。理解できません。

0 投票する
0 に答える
246 参照

ios - convertTo ノード/ワールド空間

背景を埋めるために CCSprite を配置しようとしています。私のシーンには、この CCLayer の 2 つのインスタンスがあります。そのうちの 1 つは背景が少しオフセットされて正しい位置に表示されますが、もう 1 つはレイヤーを表示することさえできません。これは、self/self.parent/self.parent.parent と convertTo/Node/World/AR/Space の正しい組み合わせを使用していないことが原因だと感じています。

これは、レイヤーの 1 つのインスタンスに対して機能する私のコードです。

これが他のレイヤーのどこでつまずいているかを確認するために (isThumbnailプロパティによって決定されるため、いくつかのログを追加しました:

その結果:

この場合にどれが必要か、そしておそらく知る方法を誰かが説明できますか?

編集:背景スプライトは、次のように階層に追加されます。

階層は次のようになります (括弧は要素が追加される順序を示します)

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

visual-c++ - OpenGL での複合回転と平行移動の問題、独自のローカル軸を中心としたオブジェクトの移動が機能しない

私は openGL でロボットを構築しています。ロボットは移動および回転する必要があります。押すとロボットは前方に移動し、t を押すとローカル軸を中心に 15* 回転し、f を押すと再び歩きます。私はやった、ロボットは歩いて回転するが、問題は彼がローカル軸に対して回転していないことであり、彼は(0,0,0)に従っている。希望する効果を得るために、移動と回転の構成をどのように作成する必要があるかを理解していないと思います。

私は今、スケーリングされた球だけで試しています。ここに表示関数を追加して、皆さんにとってより明確になるようにします。

0 投票する
0 に答える
1998 参照

opencv - opencvがカメラポーズを与える - rvecとtvec - 座標系が一致しない

カメラのポーズ (回転行列 + 平行移動ベクトル) を見つける必要があり、そのために を使用してcv2.solvePnP()いますが、写真から取得した結果は一致しません。

デバッグするために、いくつかのオブジェクト ポイント (正方形の 4 つのコーナー)、いくつかのカメラ ポイント (焦点、主点、および仮想投影面の 4 つのコーナー) とパラメーターで構成される "デバッグ 3D シーン" を (numpy を使用して) 作成しました。 (焦点距離、初期方向)。

次に、3 つの軸回転行列を乗算して一般的な回転行列を作成し、この一般的な回転をカメラに適用し ( numpy.dot())、オブジェクト ポイントを仮想投影面に投影し (線平面交差アルゴリズム)、面内 2D 座標を計算します。 (点線距離) 投影平面軸まで。

cv2.Rodrigues(cv2.solvePnP(...))これを行った後(回転行列を介してオブジェクトポイントからイメージポイントへ)、イメージポイントとオブジェクトポイントをフィードして、使用したものと「まったく同じではない」マトリックスを取得します。これは、転置と反対の信号を持つ要素(負対正)のためだけです、この関係を尊重:

回転行列の不一致はこのハックで「解決可能」ですが、TRANSLATION VECTOR は意味をなさない座標を提供します。

私の 3D モデル (利き手、軸の向き、回転の順序) と opencv で使用されるモデルとの間に不一致があると思われます。

  • 私は OpenGL のような座標系を使用します (X は右に増加し、Y は上に増加し、Z は観察者に向かって増加します。
  • 私は自分にとってより意味のある順序で回転を適用しました (すべて右手で、最初にグローバル Z を中心に、次にグローバル X を中心に、次にグローバル Y を中心に);
  • イメージ プレーンは、オブジェクトとカメラの焦点の間にあります (リアル/CCD ではなく、仮想投影面)。
  • 私のイメージ プレーン (仮想 CCD) の原点は左下隅です (Xpix は右に向かって増加し、Ypx は上に向かって増加します。

私の質問は次のとおりです。

回転行列の項が同一で、転置されているだけで、いくつかの項で信号が異なる場合、いくつかのopenCV規則 (利き手、回転の順序、軸方向) を混乱させる可能性はありますか? そして、どうすればどれを見つけることができますか?

また、手作りの翻訳ベクトルを によって返された tvec に関連付ける方法はありsolvePnPますか? (もちろん、理想的には、最初に座標系を一致させることが最善です)。

どんな助けでも大歓迎です!

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

python - Pythonで二面角からデカルト座標を計算する方法

デカルト空間に点の集合があります。Python と numpy を使用して、特定の 4 点 (a、b、c、d) のサブアンサンブルによって定義される二面角を計算できます。以下は私の機能です:

二面角を 1 つだけ回転させたいのですが、python と numpy および scipy を使用して、ポイントのサブアンサンブルの新しい座標を計算するにはどうすればよいですか?

0 投票する
0 に答える
501 参照

javascript - 3D ワールド空間座標を SVG ビューポート座標に変換します

私は、3D ゲームの Web ページで、俯瞰視点 (ミニマップなど) からプレーヤーの位置を表示しようとしています。ゲームのレベルの 1024x1024 の画像 (ゲーム自体から取得した俯瞰図) にマーカーを (SVG 経由で) 重ね合わせているだけです。私は俯瞰図で使用していないのでxy座標のみに関心があります。z

xゲームの世界では、とy: -4096toの両方の最小/最大座標が等しくなり4096ます。0, 0座標は世界の中心です。

さらに興味深いことに、ゲーム世界内のゲーム レベルの初期位置は任意です。したがって、たとえば、私がテストしてきた特定のレベルの左上の世界座標は-2440, 3383.

0,0私の最初の混乱は、Web ページの座標が左上であり、ワールド空間の中心であるという事実から来ています。

3D ワールド空間座標を正しく変換して、任意の次元の Web ページ ビューポートに正しく表示するにはどうすればよいですか?

これが私が試したことです(私はsvgでビューボックス属性を使用して、左上のワールド座標オフセットを処理しようとしています)

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

opengl - OpenGL での 2D マウスクリックからの 3D 座標が正しくありませんか?

マウスのクリック位置を3Dで取得したい。以下は私のコードです。その単純なものです。何が問題なのですか。私が間違っているところ..?x と y の正確な値を取得できないのはなぜですか? 何か案が ?

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

algorithm - 座標系を時間とともに回転

これが私の質問の正しい場所かどうかはわかりませんが、試してみます。CS と物理学の間のどこかにあると思いますが、これを C++ でプログラミングしているので、ここに投稿します。

図に示すように、粒子に加えられた力によって (x, y) 平面で曲がっている 3D の粒子を見ています。力は北東から入る太い矢印です。y 軸と力の間の角度は "a" です。

設定

パーティクルは速度ベクトル (v_x、v_y、v_z) で左から入り、コーナーで曲がります。これは、ニュートンの第 2 法則によって適切かつ簡単に記述され、問題はありません。これは、オイラー法などによって数値的に簡単に解決できます。これは、これまでのところうまく実装できています。

ただし、図が示すように、粒子は一定の直径 h の円筒管内を移動し、ある時間 t で x 方向と z 方向 (画面の外を指す) の両方で壁までの通常の距離を見つけたいと考えています。「通常の距離」とは、座標系が粒子とともに回転する場合、y および z に沿って粒子からチューブの端までの距離を知りたいことを意味します (チューブの端を指す 3 つの小さな矢印で示されているように) )。最終的な目標は、粒子が壁に衝突したかどうかをどうにかして把握することです。

z 方向については、その軸が軌道中に変化しないため自明です。しかし、y方向は私に大きな問題を引き起こしています。これは私の質問です: 軌道中に y に沿ってチューブの端までの距離を見つける方法はありますか? これを数値的に行っていることに注意してください。したがって、必ずしも分析式は必要ありません。

最高です、ナイルズ。