在JPanel上绘制Path2D时,我有一个奇怪的行为。
在此屏幕截图中可以看到,有些形状有点像尾巴:
当我将类型更改为Line2D.Double时,正如我期望的那样:
这是绘制路径/线条的代码:
Path2D.Double path = new Path2D.Double();
Graphics2D g = (Graphics2D)this.getGraphics();
for(int i=0; i<geom.size(); i++)
{
double x = ddGeom.getX(geom.get(i));
double y = ddGeom.getY(geom.get(i));
if(i==0)
path.moveTo(x-draw_center.x, y-draw_center.y);
path.lineTo(x-draw_center.x, y-draw_center.y);
}
g.draw(path);
您是否知道Screenshot1中的“尾巴”来自何处?我使用SDK版本6。
非常感谢您的帮助
编辑:将代码段更改为
if(i==0)
path.moveTo(x-draw_center.x, y-draw_center.y);
else
path.lineTo(x-draw_center.x, y-draw_center.y);
大部分(也许75%)的尾巴消失了。知道为什么会这样吗?
最佳答案
我终于明白了。多亏了HovercraftFullOfEels提示“奇怪的中风”,我才用自己的笔触进行游戏。
原始笔画:
BasicStroke stroke = new BasicStroke(2.0f);
变成:
BasicStroke stroke = new BasicStroke(2.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL);
随着新的中风,所有的“尾巴”消失了。我仍然不明白为什么会发生这种情况,但是如果有人遇到相同的问题,此解决方法可能会有所帮助。
我仍然会对这种行为的解释非常感兴趣。
谢谢您的大力帮助
关于java - JPanel上的Java Path2D.Double涂有“尾部”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12418024/