gpt4 book ai didi

math - 如何创建贝塞尔曲线来表示平滑的折线?

转载 作者:行者123 更新时间:2023-12-04 22:09:17 28 4
gpt4 key购买 nike

我有一条近似曲线的折线,我想在支持 Bezier 曲线绘制的 PostScript 中将其绘制为平滑曲线。为此,我需要在每对折线点之间生成两个控制点。 (我无法从源中获得原始曲线,只能获得折线。)

我使用来自 this description 的基数样条取得了一些成功,但那里的参数与Wikipedia不同和 GDIPlus.DrawCurve ,两者均指张力。 MS 没有细节,维基百科有不完整的细节(基数样条忽略 x 值?)。

基于张力的控制点的公式是什么?

最佳答案

查看此链接 http://www.ibiblio.org/e-notes/Splines/Cardinal.htm它提供了简单的公式,可用于计算多段平滑曲线的贝塞尔控制点。

方程式非常简单,但对于那些不想重复计算的人,我提供了我的结果:

设 Pi (i=1..n) 为折线点。

首先,学习如何计算 Pi 的导数:

P1' = (P2 - P1) / a
Pi' = (Pi+1 - Pi-1) / a (for i=2..n-1)
Pn' = (Pn - Pn-1) / a

其中“a”是一个系数(这可能意味着您提到的“张力”),例如a=2。

然后,对于从 Pi 到 Pi+1 的每个段 i (i=1..n-1),贝塞尔控制点 B1i 和 B2i 将是:
B1i = Pi + Pi'/3
B2i = Pi+1 - Pi+1'/3

关于math - 如何创建贝塞尔曲线来表示平滑的折线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1257168/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com