下面的代码,我使用旋转两个矩形的代码如下旋转两条平行线,以创建一个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
旋转。如果能解决我的问题,我将不胜感激。
如果你想知道为什么我已经做了这个样子,这是因为我希望能做出类似的,当你点击由我完成编码图形