【发布时间】:2023-03-17 09:28:01
【问题描述】:
可以画出两端开口的形状吗?
例如:假设我想画一个tree,它的根是开放的。有没有一种优雅的方法可以让末端打开,而不会过度绘制已经绘制的线条?
我可以用与我的开口一样大并具有背景颜色的形状过度绘制它,但我认为这不是优雅的方式,我找不到任何让它们打开的选项。也许我只是个盲人,我可以制作strokePolygon(...),其中并非所有点都相关联,但我认为这不是要走的路。
让我们有一个简单的形状:
[ceate Scene and Stage, etc]
Canvas sc = new Canvas(x, y);
GraphicsContext gcCs = cs.getGraphicsContext2D();
gcCs.setStroke(Color.BLACK);
double counter = 0.0;
[calculate points, instantiate arrays, etc]
for (int i = 0; i < arrayX.length; i++)
{
arrayX = shapeMidX + Math.cos(Math.toRadiants(counter * Math.PI)) * shapeSizeX / 2);
arrayY = shapeMidY + Math.sin(Math.toRadiants(counter * Math.PI)) * shapeSizeY / 2);
}
gcCs.strokePolygon(arrayX, arrayY, arrayX.length);
[making other things]
stackPane.getChildren().add(sc);
我知道我可以使用.strokeOval(),但我希望有一个与我自己的代码相近的示例。
我喜欢从中心画出我的形状。
P.S.:我把for() { } 写在我的脑海里,可能是有问题。我现在家里没有互联网,所以我的回答可能需要很长时间。
提前谢谢你。
【问题讨论】:
-
进行自定义绘画,使形状不闭合。例如使用PolyLine:“Polyline 类类似于 Polygon 类,只是它不会自动关闭。”
-
哇,我必须是盲人。像他妈的一样容易。谢谢你。我会试试这个。