簡體   English   中英

計算多邊形旋轉,使直角是直的

[英]Calculate Polygon Rotation so Right Angles are Straight

我有一個多邊形(RED SQUARE),為簡單起見,它是一個 100x100 的正方形,從左上角偏移 100。 假設坐標系左上角為 0,0。 所以我的簡單正方形的坐標是:[x:100,y:100],[x:100,y:200],[x:200,y:200],[x:200,y:100]。

現在假設我有另一個正方形(藍色正方形),它也是一個 100x100 的正方形,與左上角有相同的 100 偏移,但是這個正方形旋轉了 45 度,所以它的繩子是:(圓形)[x:150,y :79],[x:79,y:150],[x:150,y:221],[x:221,y:150]。

如果只給定坐標,如何計算 BLUE SQUARE(45 度)的旋轉? 假設我希望在這個坐標系中直角(垂直或水平)(如 RED SQAURE)。

換一種說法...給定這些坐標: [x:150,y:79],[x:79,y:150],[x:150,y:221],[x:221,y:150] 如何我是否計算要應用於多邊形的旋轉,所以它的坐標是這樣的:[x:100,y:100],[x:100,y:200],[x:200,y:200], [x:200,是:100]

這是一張圖片,展示了我在說什么。 帶坐標的兩個多邊形的圖像

你這樣做的方式是

  1. 計算兩個相鄰點之間的角度。 這個 Math.atan2(x2-x1, y2-y1) 的公式; 這將為您提供四邊形所在的角度。
  2. 將四邊形(從其中心)旋轉 - 角(或 pi/2 - 角),一側將是水平的,另一側將是垂直的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM