グラフアプリケーションを開発中です。アプリケーションウィンドウには、エッジで結ばれた頂点があります。ユーザーは頂点を移動することができ、頂点を移動するとエッジも移動します。私は、両方の頂点の位置に応じてエッジ方向を表す矢印を描画するパターンを見つけるのに問題があります。エッジの方向を描画するアルゴリズム
例を示します。
頂点にはがあります。エッジはVertex1の中心からVertex2の中心まで描かれます。
Vertex1.position = new Point(0,0);
Vertex2.position = new Point(100,0);
Edge.point1 = new Point(10,10);
Edge.point2 = new Point(110,10);
//Arrow representing direction from Vertex1 to Vertex2
Arrow.point1 = new Point(100,10);
Arrow.point2 = new Point(90,20);
Arrow.point3 = new Point(90,0);
質問:エッジの開始点と終了点の位置を知り、矢印ポイントを計算する方法は?
1)ポイント(上端)に対する半径方向(角度/距離)の矢印ポイントを定義する、2)頂点を結ぶベクトルの角度を計算する(x軸またはy軸のいずれかの角度、重要ではない) 3)あなたが取った角度に応じて、矢印ポイントの角度を加算または減算します。4)sinとcosを使って、それぞれの矢印(左の)点の上の点からxとyのオフセットを計算し、5)addこれらの値は上の矢印の点に – neeKo