我正在尝试创建一个简单的圆顶矩形。我可以使用bezierCurveTo
方法来创建封口,但我必须使用控制点的y值来获得曲线的正确高度。如果我知道曲线通过的宽度和高度,是不是找到控制点的y值的公式?我现在拥有的功能是
c.moveTo(130,55);
c.bezierCurveTo(130,-18,0,-18,0,55);
-18是我必须设置y值的值,以使曲线近似通过y= 0。
发布于 2011-03-16 15:10:45
是的,对于这种受约束版本的Bezier曲线,有一个简单的答案。从维基百科here中获取三次贝塞尔曲线的定义,并求解曲线的中点(t=0.5),y的最小值将为:
1/4 Ymax + 3/4 Ymin
(Ymax是起始点和结束点的y值,Ymin是两个控制点的y值)。或者,如果中点为0,
Ymin = -1/3 Ymax.
因此,由于Ymax = 55,因此Ymin必须为-1/3*55 =-18.333。--这就是18在您的示例中有效的原因。
https://stackoverflow.com/questions/4383579
复制