AWT/Swingを使用してJavaで高精度の円弧を描画しようとしています。Graphicsクラスは、これを行うための「drawArc」メソッドを提供し、ほとんどの場合、これで問題ありません。ただし、円弧の半径が大きい場合(つまり、「幅」と「高さ」のパラメータが大きい場合)、円弧は正確に描画されません。これは、「startAngle」および「arcAngle」パラメーターが整数度として指定されているためです。角度(ラジアンで指定)を度に変換してから丸める必要があります。精度が低下すると、アークが実際の終点を下回ったり(切り捨てた場合)、本来よりも遠くに移動したりします(切り上げた場合)。
円弧を描く別の方法を探しています。これは同じように機能することが望ましいですが、浮動小数点の角度をパラメーターとして受け入れます。
そのような関数が存在しない場合(私はそれを見つけることができませんでした)私はそれを自分で書きたいのですが、Graphicsクラスはすでに私が見つけることができる最低レベルの描画メソッドを提供しているのでこれをどうやって行うのか分かりません。私が持っていた唯一のアイデアは、一連の直線で円弧を近似することですが、滑らかな円弧を取得するには、多くの線が必要になり、これは非常に非効率的です。