比我聪明的人可以看看这个。我正在尝试实现我在objective-c中找到here的Bezier曲线算法。
输出错误。我认为我正确地转换了代码,所以原来是错误的,或者没有像这样使用...如果我使用内置的NSBezierPath
曲线看起来很棒但是我不能使用内置的{ {1}}。
NSBezierPath
NSBezierPath *bezierPath = [[NSBezierPath alloc] init];
[bezierPath setLineWidth:1.0f];
[bezierPath moveToPoint:NSMakePoint(x1, y1)];
[bezierPath curveToPoint:NSMakePoint(x4, y4) controlPoint1:NSMakePoint(x2, y2) controlPoint2:NSMakePoint(x3, y3)];
有关完整的Bezier曲线功能,请参见Bezier curve algorithm in objective-c needs a tweak。
答案 0 :(得分:4)
我在我的xy绘图仪上使用了这个Bezier函数,发现'to'出现了一个小错误。
需要切换to.x
to.y
和b.x
b.y
,以便笔从from
开始,到to
结束。
qx = q1*from.x + q2*a.x + q3*b.x + q4*to.x;
qy = q1*from.y + q2*a.y + q3*b.y + q4*to.y;
答案 1 :(得分:2)
在我看来,每个点都有错误的系数,并且你的一个加法成倍增加。我想你想要的是:
qx = q1*from.x + q2*a.x + q3*to.x + q4*b.x;
qy = q1*from.y + q2*a.y + q3*to.y + q4*b.y;