在Java图形实用程序中使用double?

在Java图形实用程序中使用double?,java,graphics,utility,Java,Graphics,Utility,我想知道是否有一种方法可以使用内置java graphics实用程序中的双值绘制点。我正在制作一个简单的时钟,但我希望它尽可能精确。图形中的drawLine(int,int,int,int)方法显然不会将double作为参数。有办法解决这个问题吗 另外,所讨论的双精度是指时钟上每只指针经过1秒时x和y的变化。像素仅存在于整数位置。把它想象成一个棋盘,每一个正方形只有一种颜色,半个正方形没有任何意义 您可以做一些事情(例如,双线性插值)在像素之间绘制,但它们所做的只是根据合适的算法和您选择的位置修

我想知道是否有一种方法可以使用内置java graphics实用程序中的双值绘制点。我正在制作一个简单的时钟,但我希望它尽可能精确。图形中的drawLine(int,int,int,int)方法显然不会将double作为参数。有办法解决这个问题吗


另外,所讨论的双精度是指时钟上每只指针经过1秒时x和y的变化。

像素仅存在于整数位置。把它想象成一个棋盘,每一个正方形只有一种颜色,半个正方形没有任何意义

您可以做一些事情(例如,双线性插值)在像素之间绘制,但它们所做的只是根据合适的算法和您选择的位置修改点周围的所有像素


如果你想要更高的分辨率,那么最简单的事情就是提高你正在使用的图像的分辨率。像素越多,精度就越高,直到达到显示设备的极限。

Graphics2D有一个内部仿射变换矩阵,您可以对其进行更改。我还没有测试过下面的代码,但我认为这个或一个变体可能会接近您想要的(尽管实际上,像素都位于整数位置…)


当你告诉它在两个像素之间的位置绘制时,你认为这样的方法应该做什么?同意,因为图形/2D API上的直升机视图显示了一些使用doubleIt的方法,现在对我来说是有意义的,因为像素本质上是一个整数。我只是想知道如何应用x和y的变化。例如,我有changeX=radius*Math.cos(角度)。手移动时,角度每秒都会发生变化。即使我将changeX设置为整数,唯一可用的值将是通过半径的0作为整数。。。
Graphics2D g; // get a Graphics2D from somewhere
g.rotate(Math.PI/4);
g.drawLine(0,0,1,0); //draw a line at 45°
// now you should probably rotate back...