我目前正在嘗試使用仿射變換類旋轉多邊形。使用旋轉方法,多邊形的圖形表示更新,但多邊形的邊界框不會更新。除了更新座標外,我怎樣才能旋轉多邊形?使用仿射變換旋轉多邊形
0
A
回答
4
創建一個新的Shape,而不是像繪製它一樣旋轉多邊形。例如:
Polygon shape = new Polygon();
shape.addPoint(...);
....
Rectangle bounds = shape.getBounds();
AffineTransform transform = new AffineTransform();
transform.rotate(Math.toRadians(angle), bounds.width/2, bounds.height/2);
Path2D path = (shape instanceof Path2D) ? (Path2D)shape : new GeneralPath(shape);
Shape rotated = path.createTransformedShape(transform);
System.out.println(rotated.getBounds());
+0
創建新形狀似乎可行,給我更新的座標。但是我不太瞭解路徑部分......多邊形怎麼可能成爲Path2d的一個實例? –
+0
這不是,這就是爲什麼代碼進行檢查。在這種情況下,多邊形首先轉換爲GeneralPath,因此可以旋轉。 (我剛剛更新了代碼,以便使用「形狀」變量而不是原來的「多邊形」變量。希望這更有意義) – camickr
+0
好吧,謝謝,這真的有幫助! –
相關問題
- 1. WinAPI多邊形變形旋轉
- 2. 旋轉多邊形對象
- 3. OpenGl多邊形旋轉
- 4. 如何旋轉多邊形?
- 5. 如何旋轉多邊形?
- 6. 旋轉多邊形計算
- 7. Python PIL圖像變形/仿射變換
- 8. 仿射旋轉矩陣
- 9. 將多邊形轉換爲多邊形
- 10. 轉換多邊形
- 11. TCPDF使用相同轉換內的矩形多邊形旋轉和剪輯
- 12. 將二維仿射變換矩陣轉換爲三維仿射變換矩陣
- 13. 從仿射變換矩陣得到歪斜或旋轉值
- 14. 繞點旋轉的一步仿射變換?
- 15. 旋轉2D多邊形形狀算法
- 16. Scala:仿射變換
- 17. 旋轉多邊形180度會產生反射嗎?
- 18. 使用RANSAC的仿射變換模型
- 19. 使用PIL進行非仿射變換
- 20. uilabel邊框在旋轉後會變形
- 21. 指向多邊形轉換
- 22. 轉換多邊形橢圓
- 23. 在Java中旋轉多邊形
- 24. C# - 隨機旋轉多邊形
- 25. 在HTML畫布上旋轉多邊形
- 26. 翻轉和旋轉圖像。仿射變換在java中無法正常工作
- 27. 將本徵仿射變換轉換爲本徵等角變換
- 28. 如何通過仿射變換在原點周圍應用旋轉
- 29. Opengl glRotatef旋轉一個多邊形,將不會旋轉到位
- 30. PIL仿射變換python
你是什麼意思的多邊形的「邊界框」?你是否將它存儲爲多邊形的一部分? –