問題タブ [spherical-coordinate]
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.
python - 3D 球に 2D 配列を正しくプロットする方法
一定半径の球座標で定義された関数があります。(つまり、2D 配列)
私の目的は、これを球に正しくプロットすることです。plotly を使用することを考えましたが、コンピューターが新しすぎるか、内部の問題のために使用できず、次のエラーが表示されます。
エラー:root:GLX コンテキストを作成できません。中止しています。
とにかく、私は次の例に従って Cartopy ライブラリに落ち着きました: Python で 3D 球上に円筒状の地図データをプロットする。
ここに私のコード:
私はこのイメージを得る。
ただし、Cartopy の説明を読んでも解決できない質問がいくつかあります。これを明確にしてください。まず、画像の緯度と経度が目的の緯度と経度に対応していることを確認するにはどうすればよいですか? それは範囲パラメーターにあると思いますが、行間をたどって置くと:
もうわかりません。2 つ目の質問は、どのラベルが表示されているかを確認する方法です。たとえば、私の画像では緯度が表示されていますが、たとえば経度を取得するにはどうすればよいですか? このタイプのプロットの伝説がどのように機能するかを理解するのは難しいと思います.
もちろん、この種のものを取得するための他のライブラリがあれば、私は興味があります。
3d - 球の内側に射影された長方形の計算
半径 r の球の中心にあるプロジェクターを想像してください。XY が地面で、+ve Z が「上」である座標系を使用しています。プロジェクターには、ピッチ (XY 平面から +/-90 度の仰角)、ヨー (Z 軸を中心に 0 ~ 360 度の回転)、および水平および垂直 FOV (hFOV および vFOV) があります。私が計算しようとしているのは、球の内側に投影された画像の球形の長方形です (円弧で接続された 4 つの頂点で構成されていると想定しています)。私の目的は、投影された四角形を 3D で描画することなので、各頂点を接続するエッジ アークを計算するために、各 FOV に沿って補間する必要があると思います。
物事をもう少し楽しくするために、この (驚くべき!) プロジェクターは、最大 360 度の hFOV と最大 180 度の vFOV を持つことができます。明らかに、360 の hFOV はもはや球形の長方形を投影しませんが、これは特別なケースとして扱うことができます。
ピッチ/ヨー/フォブを極座標として扱ってみましたが、投影された長方形の上下が Z 軸の極に近づくにつれて小さくなります。 FOV が同じであれば、ピッチ/ヨー。
誰かがこれを計算する方法を説明できますか? XY 平面で hFOV 位置を計算し、投影の方向ベクトルに直交する軸を中心に回転させることを検討しましたが、もっと簡単な方法があると思わずにはいられません。
ありがとう。
python - 球座標をデカルト座標に変換してからデカルト座標に戻すと、目的の出力が得られない
デカルト座標を球座標に、またはその逆に変換するための 2 つの関数を作成しようとしています。変換に使用した方程式は次のとおりです (このウィキペディアのページにもあります)。
と
これが私のspherical_to_cartesian
機能です:
これが私のcartesian_to_spherical
機能です:
そして、ここにドライバーコードがあります:
シータとファイの値が初期値と異なる理由がわかりません (出力値が入力値に近くさえありません)。見えないコードで間違いを犯しましたか?
javascript - 角度に基づいて、球の周りを歩いているかのように回転するプログラムを作成するにはどうすればよいでしょうか?
私は(2Dポイントとして)3D球体を歩き回る必要があるプロジェクトに取り組んでいます。極歪みなしでこれを達成する方法を理解するのに苦労しています。基本的には、前進、後進、左折、右折、および左折、右折が必要です。これを球座標で機能させようとしましたが、関数が正しくないようです。これを機能させるにはどうすればよいですか?(p5.js ライブラリを使用して JavaScript で作成しています)
現在、x 変数と y 変数をそれぞれ球面空間の phi と theta にマッピングしようとしています。ただし、機能していないようです。正しく実装された場合、ポイントが大円に移動するかどうかはわかりません。
また、角度変数を使用して x と y を (cos(A), sin(A)) だけ移動していますが、これが機能しているかどうかはわかりません。
私がしなければならないことは、大円航法に関連していると思いますが、その背後にある数学がわかりません。
現在のバージョンへのリンク: https://editor.p5js.org/hpestock/sketches/FXtn82-0k
現在のコードは次のようになります