英文:
How to determine t value of original cubic bezier curve after subdivide such curve twice with each t = 0.5?
问题
The translated content is:
取这个作为初始的三次贝塞尔曲线,首先在 t=0.5 处细分,得到点 K,然后我想要进一步细分第二半部分的三次贝塞尔曲线 KJGD,得到一个点,我们称之为 M。
我的问题是:如果我在点 M 处细分原始的三次贝塞尔曲线 ABCD,那么 t 的值是多少?是不是 0.5 + 0.5 * 0.5 = 0.75?(首次 t=0.5 加上第二部分(0.5)的一半(0.5))
我使用 C++ 作为编程语言。
英文:
Take this as initial cubic bezier, first subdivide with t=0.5 get point K, then I want to further subdivide the second half cubic bezier KJGD, get a point, let's say M.
My question is: If I subdivide the original cubic bezier ABCD at the point of M, what is the t value? is it 0.5 + 0.5 * 0.5 = 0.75? (first t=0.5 plus half (0.5) of the second part (0.5))
I use c++ as programming language.
答案1
得分: 0
如果 S0
是您的原始分割点 (在您的情况下为0.5), 而 S1
是第二曲线上的分割点 (同样是0.5在您的情况下), 那么是的,您在原始曲线上的分割点是:
S0+(1-S0)*S1
,
0.5+(1-0.5)*0.5 == 0.75
.
英文:
If S0
is your original split point (0.5 in your case), and S1
is the split on the second curve (again, 0.5 in your case), then yes, your split point on the original curve is:
S0+(1-S0)*S1
,
0.5+(1-0.5)*0.5 == 0.75
.
答案2
得分: 0
这不是将曲线细分,而是使用递归的De_Casteljau算法来计算从t
处的值(BEZIER上的点),因此如果您使用了t=0.5
,它的值将始终保持不变...
如果您想获得到BEZIER上距离某点M
最近的t
值,那么您需要一个反向过程,请参见:
英文:
This is not subdividing the curve but its recursive De_Casteljau algorithm to compute the value (point on BEZIER) from t
so the value of t
is never changing if you used t=0.5
it stays the same all the way ...
If you want to obtain t
of closest point on BEZIER to some point M
then you need a reverse process see:
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论