链接:官方SVG参考
你好男人和女人,我在速记曲线(由路径数据中的S或s定义)bezier曲线定义为SVG路径时遇到了一些麻烦.具体来说,如何计算第一个控制点.
假设我们有一个带有控制点(X1, Y1)和(X2, Y2)端点(X3, Y3)和起点的curveto命令(X0, Y0).
接下来是带有第一个控制点(X4, Y4)和第二个控制点的速记/平滑曲线命令(X5, Y5).为简单起见,假设一切都在绝对坐标中.
如何(X4, Y4)从其他已知点计算未知的第一个控制点?
考虑以下很好的解决方案,找到通过4个点的曲线的立方Bézier控制点:
如何在C#中找到开始,结束和2个交叉点的BezierSegment的控制点 - AKA Cubic Bezier 4点插值
我想知道,如果Bézier曲线通过N点有一个直接的延伸,那么N> 2并且可能N≤20?
我是 SVG 的初学者。
我需要一条穿过点列表的 SVG 曲线。它是一个用 C++ 计算的数学函数,输出结果应该写入 SVG 文件中。我的问题是pathSVG 中的标签没有穿过所有点。相反,它会在中间跳过其中一些,而只是倾向于它们。SVG是否有任何设施可以使曲线通过整个点并以自动方式适当弯曲曲线?

<svg height="400" width="450">
<path d="M 80 90 C 190 40, 300 60, 380 160" stroke="blue" stroke-width="5" fill="none" />
<path d="M 80 90 L 190 40, 300 60, 380 160" stroke="green" stroke-width="1" fill="none"/>
<g stroke="black" stroke-width="3" fill="black">
<circle id="pointC" cx="80" cy="90" r="3" stroke="black"/>
<circle id="pointA" cx="190" cy="40" r="3" stroke="green"/>
<circle id="pointC" cx="300" cy="60" r="3" stroke="red"/>
<circle id="pointB" cx="380" cy="160" r="3" stroke="blue"/>
</g>
Sorry, your browser does not support …Run Code Online (Sandbox Code Playgroud) 如果您使用像Gimp或Photoshop这样的图形编辑程序,您将理解我的意思.要编辑这些程序的曲线(可能是贝塞尔曲线),我们可以单击曲线,拖动鼠标并相应地更改曲线.我怀疑这个机制背后的所有东西都与向量有关,但我找不到任何提及如何做到的文件.有人能告诉我怎么做吗?非常感谢你.
[编辑]我的意思是选择曲线本身来改变(编辑)它(点击曲线,然后拖动曲线进行编辑).通常,我们选择控制点来改变曲线.我知道要改变曲线,我需要编辑控制点,但是如何将曲线上的变化解释为对控制点的变化?
这与我之前提到的有关Cubic Bezier的问题类似.我有一个起点,一个终点,以及一个位于Quadratic Bezier的点.鉴于这三点,我希望能够在WPF中绘制QuadraticBezierSegment,但我需要单个ControlPoint值(在QuadraticBezierSegment中它是Point1)才能绘制它.
是否有计算或手段可以确定该值并因此绘制我的QuadraticBezier?
谢谢!