如何绘制一个圆,将其定位为双精度值而不是整数?

haz*_*994 3 java graphics geometry jframe shapes

基本上,我想使用 Graphics 绘制一个圆,但不是使用整数来定位它,而是想使用双精度值。

理想情况下:

g.drawOval(0.5, 0.5, 50, 50);
Run Code Online (Sandbox Code Playgroud)

任何帮助是极大的赞赏!提前致谢!

感谢所有帮助的人,但我找到了出路,我的 dy 变量设置为 1,所以如果我希望 dx 为 dy 的一半,那将是不可能的,相反我只是将 dy 更改为 2,将 dx 更改为 1 !愚弄我!

Mar*_*aux 5

这样做的唯一有效方法是使用Ellipse2D.Double形状并将其传递给实例的draw(Shape)方法Graphics2D。为获得最佳效果,请启用抗锯齿:

public void yourDrawingMethod(Graphics gg)
{
    /* Cast it to Graphics2D */
    Graphics2D g = (Graphics2D) gg;

    /* Enable anti-aliasing and pure stroke */
    g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
    g.setRenderingHint(RenderingHints.KEY_STROKE_CONTROL, RenderingHints.VALUE_STROKE_PURE);

    /* Construct a shape and draw it */
    Ellipse2D.Double shape = new Ellipse2D.Double(0.5, 0.5, 50, 50);
    g.draw(shape);
}
Run Code Online (Sandbox Code Playgroud)

您也可以使用Graphics2D.fill(Shape)