问题描述
我在Java2D中遇到这个奇怪的问题。我有一个要绘制的Path2D.Double
,但是根据笔触大小,所有线段均正确绘制(弯曲),但是当笔划大小大于或等于0.00005d时,这些线段将笔直绘制。如您所见,我要更改的唯一参数是笔触大小。我在做什么错了?
Basicstroke basicstroke1 = new Basicstroke(.00004f,CAP_ROUND,JOIN_ROUND);
g2draw.setstroke(basicstroke1);
g2draw.draw(path);
Basicstroke basicstroke2 = new Basicstroke(.00006f,JOIN_ROUND);
g2draw.setstroke(basicstroke2);
g2draw.draw(path);
解决方法
当比例差很大(或不是很大)时,将用户坐标转换为屏幕坐标时,错误似乎是舍入错误。这是Java2D的奇怪行为。切换到JavaFX,问题消失了。