我为每个角度设置了0到360度的值。现在我想把面板上的一些坐标作为ORIGIN并使用for循环我想根据角度及其相对于原点的值来绘制图形。
例如:
for(int angle=0 ; angle< 360; angle++){
graphics.draw(origin, angle, value[angle]);
}
我是Swings的新手,基于我的学习和在互联网上搜索,我找到了如何为给定的2点绘制弧线的解决方案但在我的例子中我需要从原点绘制线条,从原点到我的角度和长度积分取决于value[angle]
。
有人可以提供一些指示,说明我们如何使用Java Swings实现这一目标?
例如,图像看起来像这样。我输入为(角度,长度) - (0,5),(30,7),(85,4)
答案 0 :(得分:2)
我猜你需要从一个点到另一个点画一条线;我认为你不想绘制弧线。
会是这样的:
double x = originx;
double y = originy + value[0]*scale;
for(int angle=1 ; angle< 360; angle++){
double rad = angle*Math.PI/180.0;
double x1 = originx + value[i]*scale*Math.cos(rad);
double y1 = originy + value[i]*scale*Math.sin(rad);
graphics.drawLine(int)x, (int)y, (int)x1, (int)y1);
x = x1;
y = y1;
}
更新:
请注意,如果你有一个Graphics2D,你可以先构建一个Path2D,然后在图形上绘制它:
Path2D path = new Path2D.Double();
path.moveTo(0, value[0]);
for(int angle=1 ; angle< 360; angle++){
double rad = angle*Math.PI/180.0;
path.lineTo(value[i]*Math.cos(rad), value[i]*Math.sin(rad));
}
g2d.translate(originx, originy);
g2d.scale(scale, scale);
g2d.draw(path);