作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图找到一种算法来计算给定三次贝塞尔曲线的边界框。曲线位于3D空间中。
除了在曲线上采样点并计算这些点的边界框外,是否有其他数学方法可以做到这一点?
最佳答案
大部分问题都在An algorithm to find bounding box of closed bezier curves?中解决,除了这里我们有三次贝塞尔曲线,并且在那里处理了二次贝塞尔曲线。
本质上,您需要采用每个坐标函数的导数。如果x坐标是由
x = A (1-t)^3 +3 B t (1-t)^2 + 3 C t^2 (1-t) + D t^3
dx/dt = 3 (B - A) (1-t)^2 + 6 (C - B) (1-t) t + 3 (D - C) t^2
= [3 (D - C) - 6 (C - B) + 3 (B - A)] t^2
+ [ -6 (B - A) - 6 (C - B)] t
+ 3 (B - A)
= (3 D - 9 C + 9 B - 3 A) t^2 + (6 A - 12 B + 6 C) t + 3 (B - A)
a t^2 + b t + c
处编写。我们想解决
dx/dt = 0
,您可以使用二次公式来完成
- b +/- sqrt(b^2-4 a c)
-----------------------
2 a
关于math - 计算三次贝塞尔曲线的边界框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24809978/
我是一名优秀的程序员,十分优秀!