JavaFX在GraphicsContext
和高级Path
节点上提供了低级路径绘制方法。
我想在类中存储形状并在GraphicsContext
中绘制它们。 Path
课对我来说似乎很方便。我知道,它应该用作场景图中的节点,但它包含我需要的所有绘图元素。
我正在寻找像这样的方法
GraphicsContext.fillPath(Path)
但没有。
我是否必须手动迭代Path
元素并将其转换为低级GraphicsContext
方法,或者我是否遗漏了某些内容?
答案 0 :(得分:1)
我是否必须手动迭代Path元素并将它们转换为低级GraphicsContext方法?
是。您需要编写一个翻译器来获取从Path
中提取的数据并调用适当的图形上下文方法(请参阅Path Rendering methods),例如beginPath()
,moveTo()
,{{ 1}},lineTo()
,closePath()
,fill
等
您可以使用SVGPath
,而不是使用路径。将SVGPath从场景图节点数据转换为GraphicsContext方法很容易 - 您只需执行gc.appendSVGPath(svgPath.getContent())
。
答案 1 :(得分:0)
我知道,它来的有点晚,但这里有一个简单的通用解决方案......
由于 Path
类的类型为 Node
,因此您可以在特定的 Node.snapshot()
上使用方法 Path
,然后传递生成的 { {1}} 到 WritableImage
。
这是一个如何实现这一点的简单代码片段:
GraphicsContext.drawImage()