如果您想保持线条的整体形状并使拐角变圆,可以:
在每个拐角周围创建新点:
例如,在您描述的情况下,有一个拐角在P2处。
我们可以使用任何epsilon < 0.5来实现这个目的,让我们使用0.1,所以我们有P1.9、P2.1。
P1.9.x = (9 * P2.x + P1.x)/10
P1.9.y = (9 * P2.y + P1.y)/10
P2.1.x = (9 * P2.x + P3.x)/10
P2.1.y = (9 * P2.y + P3.y)/10
你可以这样做:
Bezier(P0, P1, P1.9);
Bezier(P1.9, P2, P2.1);
Bezier(P2.1, P3, P4);
不要这样做:
Bezier(P0, P1, P2);
Bezier(P2, P3, P4);
我希望这个新的回答能够帮到您...否则我想看到一个描述您拥有的线条类型和您想要看到的结果的图像。(这将有助于过滤掉与标准不符的答案)
旧的回答:
用户为每个贝塞尔曲线输入3个点?
如果您想要制作平滑的线条,可以按以下步骤进行:
1.创建新的插值点:
p0.5[x] = (p0[x] + p1[x]) / 2;
p0.5[y] = (p0[y] + p1[y]) / 2;
1. 对于p1.5、p2.5等,同样进行上述操作,其中p(N.5)使用p(N)和p(N+1)。
2. 不要绘制:
Bezier(p0, p1, p2);
Bezier(p2, p3, p4);
绘图
Line(p0, 0.5);
Bezier(p0.5, p1, p1.5);
Bezier(p1.5, p2, p2.5);
Bezier(p2.5, p3, p3.5);
Line(p3.5, p4);
我希望这篇文章易于理解并有所帮助。