私は初心者のためにPythonでスクリプトを作成しています。 この例を単純にすると、([0,0]、[1,1])のuv座標を持つ1つのエッジがあるので、45度の角度になります。私は([0,0]、[0,1])という別のエッジを持っているので、その角度は0/360度です。私の目標は、2つのエッジの角度を比較してその差を求めることで、第1のエッジの角度と一致するように第2のエッジの角度を変更することができます。ベクトル計算でこれを行う方法はありますか?エッジ間のマッチング角度
-2
A
答えて
0
再構築するのが最も簡単で建設的に覚えているのは、IMOです。 a=a.x+i*a.y
からb=b.x+i*b.y
までの角度を計算するには、a
のコンジュゲートを掛けてゼロ角度からの角度を得ることによって、b
を戻します。正の実軸、
arg((a.x-i*a.y)*(b.x+i*b.y))
=arg((a.x*b.x+a.y*b.y)+i*(a.x*b.y-a.y*b.x))
=atan2(a.x*b.y-a.y*b.x , a.x*b.x+a.y*b.y)
画面座標がデカルト/複素平面に反対の配向を使用することに注意してくださいは、このように通常の方向の角度を取得するatan2(y,x)
からatan2(-y,x)
する符号スイッチを使用して変更します。 a
から
(ラジアン)ベクトルb
回転角度を生成するためにw
、あなたがb
の指定した長さを得るために再スケールする必要があります
b.x = cos(w)*a.x - sin(w)*a.y
b.y = cos(w)*a.y + sin(w)*a.x
を得ることがcos(w)+i*sin(w)
を掛け。
関連する問題
- 1. Delaunay Triangulation不適切な角度とエッジ
- 2. 角度補間
- 3. PaperJS - 2点間の角度
- 4. モジュール間の角度通信
- 5. ビッグデータセットの空間マッチング
- 6. CALayerのアンチエイリアス対角エッジ
- 7. 角度2、ビデオ期間アクセス。
- 8. Scenekit:2つのSCNNodeの間の角度
- 9. Matlabの2つのベクトル間の角度
- 10. コンポーネント間の角度2の値渡し
- 11. 2点間の距離と角度
- 12. IOS - ipadとピッチロールレイヤー間の角度
- 13. 2点間の符号付き角度
- 14. コントローラとコンポーネント間の角度分けデータ
- 15. SVG中間マーカーの位置と角度
- 16. デスクトップとモバイル角度2のロード時間
- 17. 分度器のドラッグ&ドロップ:HTML5の角度と角度角度
- 18. 角度2 +角度 - cli +角度@ 5.3
- 19. NodeJS - 一度のマッチング方法は?
- 20. Graphviz - ノード間の水平エッジ
- 21. どのように角度角度2のpolyfils角度RC.1?
- 22. numpy配列内のラベル付きコンポーネント間の最小エッジ - エッジ間ユークリッド距離
- 23. モジュール間通信、角度J、ファクトリ
- 24. 角度2が間違ったコンポーネント
- 25. 2行の間の角度が間違っています
- 26. カッコ間のマッチングのためのRegex(ICU)
- 27. 角度2ルータ+角度-CLI
- 28. 角度:ここ角度
- 29. エッジの厚さによって表されるノード間の接続の頻度
- 30. モジュールインジェクタの角の角度エラー
質問が不明です。それらの2つのタプル(エッジ)の最初のリスト(ポイント)が同じであることを確かめますか?あなたはそれらの2つのベクトル間の角度を計算するように求めていますか?両方がイエスならば、コサインの法則またはドットプロダクト(基本的に同じ)を使用します。 atan2()関数を使用することもできますが、それはより複雑です。 –
ポイントはUV座標です。XYZ座標ではなく、エッジはこれらの座標のペアです。 – Kenny
私は3点間のベクトルを比較するためのドットプロダクトのコード例を持っていますが、それらが同じかどうかを確認するには、角度の違いをどのように取得するのか分かりません。 – Kenny