有理贝塞尔曲线

您所在的位置:网站首页 曲线表示椭圆的条件为 有理贝塞尔曲线

有理贝塞尔曲线

2024-07-17 22:43| 来源: 网络整理| 查看: 265

说明

文稿来自计算几何导论 https://pages.mtu.edu/~shene/COURSES/cs3621/NOTES 的翻译。

有理贝塞尔曲线

有理贝塞尔曲线是NURBS曲线的特例。有理贝塞尔曲线由以下确定: n + 1 n+1 n+1个控制点 P 0 , P 1 , . . . , P n P_0,P_1,...,P_n P0​,P1​,...,Pn​,与控制点一一对应的权值 w i w_i wi​,结点为0(重数为n+1)与1(重数为n+1)。 C ( u ) = ∑ i = 0 n R i , n ( u ) P i \mathbf{C}(u)=\sum_{i=0}^{n} R_{i, n}(u) \mathbf{P}_{i} C(u)=i=0∑n​Ri,n​(u)Pi​ 其中基函数: R i , n ( u ) = B n , i ( u ) w i ∑ j = 0 n B n , j ( u ) w j R_{i, n}(u)=\frac{B_{n, i}(u) w_{i}}{\sum_{j=0}^{n} B_{n, j}(u) w_{j}} Ri,n​(u)=∑j=0n​Bn,j​(u)wj​Bn,i​(u)wi​​

圆锥曲线

由以前的讨论可以知道,贝塞尔曲线与B样条曲线只能表达抛物线等多项式曲线。有理曲线的引入,使得曲线也能够表达圆、椭圆、双曲线等。 (该部分的讨论 似乎建立在度为2的有理贝塞尔曲线就是圆锥曲线的基础上的)

五个条件可以唯一地确定一条圆锥曲线

我们知道,如下隐式曲线可以表达圆锥曲线,该隐式曲线由三个点 P 0 , P 1 , P 2 P_0,P_1,P_2 P0​,P1​,P2​确定(曲线经过 P 0 , P 2 P_0,P_2 P0​,P2​且与 P 0 P 1 , P 2 P 1 P_0P_1,P_2P_1 P0​P1​,P2​P1​相切。 p ( x , y ) = a x 2 + 2 b x y + c y 2 + 2 d x + 2 e y + f = 0 p(x, y)=a x^{2}+2 b x y+c y^{2}+2 d x+2 e y+f=0 p(x,y)=ax2+2bxy+cy2+2dx+2ey+f=0 在这里插入图片描述 一个自然的想法是将该点选取再P1到P0P2中点的线段上,在该线段上移动该点能够生成不同的圆锥曲线。 在这里插入图片描述

由基函数出发

我们假设三个控制点P0,P1,P2的权值分别为1,w,1。2度贝塞尔曲线的基函数为: B 2 , 0 ( u ) = ( 1 − u ) 2 B 2 , 1 ( u ) = 2 ( 1 − u ) u B 2 , 2 ( u ) = u 2 B_{2,0}(u)=(1-u)^{2}\\B_{2,1}(u)=2(1-u)u\\B_{2,2}(u)=u^{2} B2,0​(u)=(1−u)2B2,1​(u)=2(1−u)uB2,2​(u)=u2 在这里插入图片描述 在这里插入图片描述 即 ∣ M X ∣ / ∣ M P 1 ∣ = w / ( 1 + w ) |\mathbf{M X}|/|\mathbf{M P}_{1}|=w /(1+w) ∣MX∣/∣MP1​∣=w/(1+w) 如果w=1,有理贝塞尔曲线退化为贝塞尔曲线,曲线变成为抛物线。此时, X X X位于 M P 1 MP_1 MP1​的中点。

那么如何判断有理贝塞尔曲线是椭圆还是双曲线。 在这里插入图片描述

在这里插入图片描述

结论

由三个非共线控制点 P 0 P_0 P0​, P 1 P_1 P1​和 P 2 P_2 P2​以及权重1, w w w和1定义的有理贝塞尔曲线是双曲线,抛物线或椭圆,如果w大于,等于或小于1。

圆弧与圆

最后,我们需要分别用有理贝塞尔曲线和NURBS曲线表示圆弧与圆。

圆弧

因为圆是特殊的椭圆,那么圆弧也是用2度有理贝塞尔曲线表示,且参数 w < 1 w



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3