我正在開發圖形應用程序。在應用程序窗口中有由邊緣連接的頂點。用戶可以移動頂點,並且邊緣也移動。我有問題找到模式來繪製箭頭表示邊緣方向取決於兩個頂點的位置。繪製邊緣方向的算法
下面是一個例子。
可以說頂點有邊緣從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 2011-12-18 19:44:21