我被一些数学困在Java awt开发中。
我需要将SVG的Path命令放入awt的路径中。一切都运行良好,但后来我遇到了ArcTo命令,我仍然无法做到正确。
AWT的ArcTo命令需要包含Arc的Rectangle的x和y坐标,宽度和高度,angleStart,弧的角度范围以及arc-ending的类型(不相关)。
new Arc2D.Double(x, y, w, h, start, extent, type);
SVG的ArcTo命令就是这样。 Svg给出弧的X和Y半径,一个旋转,两个布尔(标志)和一个targetPoint。这两个标志用于在其他参数留下的四种弧形可能性之间进行选择。 This link shows nicely how it's done
A rx ry x-axis-rotation large-arc-flag sweep-flag x y
JavaFX的ArcTo Command几乎没有那样,
new ArcTo(radiusX, radiusY, xAxisRotation, arcExtent, arcY, largeArcFlag, sweepFlag);
我的数学不足以在这两个构造函数之间进行这样的转换。我会继续我的研究,但我现在真的失去了,我真的需要你的帮助!
答案 0 :(得分:0)
我使用蜡染SVG libray来实现SVG图形。您可以使用蜡染的ExtendedGeneralPath,它具有arcTo()方法,该方法具有与SVG path命令完全相同的参数,并且顺序相同。例如,当您绘制路径XX时,以下内容会给我一个心形:
ExtendedGeneralPath XX = new ExtendedGeneralPath();
XX.moveTo(10, 30);
XX.arcTo(20, 20, 0, false, true, 50, 30);
XX.arcTo(20, 20, 0, false, true, 90, 30);
XX.quadTo(90, 60, 50, 90);
XX.quadTo(10, 60, 10, 30);
XX.closePath();