下面的代碼,我使用旋轉兩個矩形的代碼如下旋轉兩條平行線,以創建一個X
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2d.setColor(Color.WHITE);
//r1
Rectangle2D r1 = new Rectangle2D.Double(0, 0, 50, 4);
g2d.rotate(Math.toRadians(45));
g2d.fill(r1);
//r3
Rectangle2D r3 = new Rectangle2D.Double(0, 25, 50, 4);
g2d.rotate(Math.toRadians(-90));
g2d.fill(r3);
這創造的東西,看起來像這樣
而我正試圖創造一些看起來像這樣的東西
發生這種情況是因爲矩形旋轉時,它們都圍繞點0,0
旋轉。爲了解決這個問題,我嘗試使用rotate(double theta, double x, double y)。但是,我無法正確使用它。例如,當我試圖
Rectangle2D r3 = new Rectangle2D.Double(0, 25, 50, 4);
g2d.rotate(Math.toRadians(-90), 25, 25);
或
Rectangle2D r3 = new Rectangle2D.Double(0, 25, 50, 4);
g2d.rotate(Math.toRadians(-90), 0, 25);
我得到類似意外的結果當兩個矩形正在圍繞點0,0
旋轉。如果能解決我的問題,我將不勝感激。
如果你想知道爲什麼我已經做了這個樣子,這是因爲我希望能做出類似的,當你點擊由我完成編碼圖形