我想用AWT/Swing在Java中绘制高精度弧。 Graphics类提供了“drawArc”方法来做到这一点,在大多数情况下,这是很好的。但是,当圆弧半径较大时(即“宽度”和“高度”参数较大),则不会精确绘制圆弧。这是因为“startAngle”和“arcAngle”参数是以整数度量给出的。我不得不将角度(以弧度给出)转换为度数,然后将其舍入。精度的损失会导致电弧低于其实际终点(如果向下取整)或超出其应有的距离(如果向上取整)。Java图形高精度drawArc
我正在寻找绘制弧线的替代方法。最好这应该以相同的方式工作,但接受浮点角度作为参数。
如果这样的函数不存在(我还没有找到)我想自己写,但我不知道如何去做,因为Graphics类已经提供了最低级别的绘图我可以找到的方法。我唯一的想法是用一系列直线逼近弧线,但为了得到平滑的弧线,您需要很多线条,这看起来非常低效。
请注意,我在paintComponent方法中创建了一个新的Graphics对象,因此我可以设置其笔画而不必担心副作用。另一种方法是存储旧的Stroke值,设置新的值,使用它,然后重新将图形描边字段设置为其原始值。 –