用导矢叉乘法对NURBS曲线进行形状调整
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
!
!"#
导矢叉乘法
约束条件 ! 阶 - ./01 曲线定义为
$
$
"$ * ; "! , ;
(;) [! " % # ( %, ! " )%#9
$
$
( "% ! %#9
* !" % )
(;) > ( ] # $ " # 6%# , %, ! ")
同时还要满足导矢值变化的约束条件, 如果改变的 导矢阶数为 . , 则约束条件为
&8*+60;+
+ HIP FIKL;Q R;M >QONSKGH J KLI SL>TI ;R * ()E6 UNMVI GS TMISIHKIQ = 1LI HIP FIKL;Q QI3
RGHIS KLI ;WOIUKGVI RNHUKG;H W? KLI GHKIJ M>< ;R KLI SXN>MIQ UM;SS TM;QNUK ;R KLI KP; K>H JIHK VIUK;MS ;R KLI ;MGJGH>< >HQ HIP UNMVIS= E ? FGHGFGYGH J KLI ;WOIUKGVI RNHUKG;H,KLI HIP FIKL;Q F>ZIS KLI QIVG>KG;H ;R KLI HIP UNMVI PGKL KLI ;MGJGH>< WI ;HI <I>SK,PLGUL F>ZIS KLI HIP UNMVI L>VI KLI SL>TI SNJJISKIQ W? KLI ;MGJGH>< UNMVI PLG<I S>KGSR ?GH J KLI U;HQGKG;HS MIXNGMIQ W? KLI F;QGRGU>KG;H = 1LI I[>F T<IS R;M U;F3 T>MGH J KLI SL>TIS >HQ IMM;MS ;R KLI UNMVIS W? KLI HIP FIKL;Q >MI GHU<NQIQ = >29 ?36’* * ()E6;FGH3<IH J KL FIKL;Q;WIHQGH J FIKL;Q;SKMIKULGH J FIKL;Q;,>J M>H JI RNHUKG;H
万方数据
宁, 女, 学士, 馆员, 主要研究方向为信息处理和管理 = !DA% 年生,
C>B
计算机辅助设计与图形学学报
>99D 年
这样形成了两种方法: 折弯能量法 ( !"#$%# &) 和拉伸 能量法 ( ’()"(*+%# &) , 但用这两种方法产生的结果在 许多情况下也不很理想, 本文提出了一种调整 - ./01 曲线形状的新方 法, 该方法可使修改后的曲线与原曲线的偏离在给 定目标函数的意义下尽可能小 , 本文方法的基本思 想是采用极小化新旧曲线上对应点的两个导矢叉乘 平方的积分, 实现使修改后的曲线与原曲线的偏离 尽可能小, 该方法得到的方程为线性方程, 便于求 解, 适合于 2345 中的交互式设计 , 用本文方法与 折弯能量法、 拉伸能量法以及 6%#78"# & (+ 法进行比 较, 结果说明本文方法要优于其它三种方法,
$
( " )# !
( , ! ") ! " %# %,
%#9
( " )# !! !" % # % , " ! ! %#9
( .)
( .)
( ") "
其中, ( ") 为节点矢量 $ : " % 为 控 制 顶 点, # %, ! ( " 9, …, 上由权因子 & % 和 ! 阶 0 ’ 样条基 " ;, "$ < !) ( 定义的基函数 函数 %% , ! () ( # %, ! " )# , ( ) & % " , ! ) )!
[!3"]
任意点的几何特性来达到调整曲线的目的; 但有时 可以改变一些特殊点的几何属性, 如 E\YGIM 曲线, 只 能够调整它两个端点的性质, 而不能直接控制它的 内部点 = 相似的问题在 * ()E6 曲线曲面上也有体 [#] 现= E>MM ? -;P<IM 等对此进行了研究 , 并提出了解 决的方法 ( FGH3<IH J KL 法) , 但该方法得到的结果在 该方法产生出的新 某种意义下不是最优的 = 例如, 曲线和原曲线的偏离误差并不是最小的 = 基于精确 能量函数的方法虽然很好, 但由于该方法求解的非
;期
孙利君等: 用导矢叉乘法对 ’()*+ 曲线进行形状调整
$
;":
$
!! # ! ! !" "
[ (" & "% " %#!
’’
! !) ) ( " & )) !" % * " & "% !" % * "% )
+
% & $ )# ($ 6
$
.$ ( % .- * %
(%) " ["!" " # ( ] & . # ,-. $ ", - .)
种方法的曲线比较图1阶导矢变化种方法的误差曲线比较图1阶导矢变化种方法的曲线比较图1阶导矢变化种方法的误差曲线比较图1阶导矢变化种方法对于曲线上一点处0阶不变1阶导矢变化产生的误差折弯能量法拉伸能量法本文方法平均误差图5029795037283023109019164066517078043058012053103026139031754023113015673064175080075064307044759通过直接操纵曲线上点的几何属性来调整nurbs曲线的形状本文提出了一种新的方法
用导矢叉乘法对 !"#$% 曲线进行形状调整
孙利君 张彩明 刘 宁
(山东大学计算机科学与技术学院 济南 #"$!$$)
摘
要
ቤተ መጻሕፍቲ ባይዱ
提出用新旧曲线上对应点的两个导矢叉乘平方的积分定义目标函数的方法 = 通过极小化目标函数使新曲
线偏离原曲线的程度最小, 从而使新曲线在满足修改条件的前提下更符合原曲线所定义的形状 = 用实例对该方法和 其它几种方法构造的曲线的形状及其误差进行了比较 = 关键词 折弯能量法; 拉伸能量法; *()E6; FGH3<IHJKL 法; ,>JM>HJI 函数 10%D!
[A3B] 等同于控制点的改变 , 但由于其修改能力十分
@
前
言
有限, 一般不采用这种形式= 在几何建模和图形应用中, 有时需要改变曲线 或曲面的几何特性来调整它们的形状, 这些几何特 性是很重要的, 如曲线上某一点的位置、 斜率、 曲率
[#] 等 = 常规的方法一般不能够直接通过调整曲线上
* ()E6 曲线和曲面在形状定义和设计方面有 很大的灵活性, 并具有统一、 通用、 有效的标准算法 和强有力的配套技术, 这些优点使得它在工业方面 得到了广泛的应用 = 在 .+75 中, 人们经常遇到对 调整 * ()E6 曲线或曲面的形状进行调整的问题, 分为两大类: 一类是调整节点向量 ! 、 控制顶点 " [!] 或权因子 9 ; 另一类是直接改变曲线或曲面的几 何特性= 对于第一类调整, 理论上, 通过三者任何一个的 为 改变, 都能够达到对曲线或曲面的调整 = 实际上, 了便于交互式操作和基于直观性的考虑, 主要表现 通过改变权因子的操 = 另外, 作对 * ()E6 曲线或曲面进行修改, 从某种角度看, 为对控制点的改变
$
( .) ] (;) ・!. ") !! ( " 1 3 A 2 [!. , (以三维为例) 其中 !. : , !. , !. ] 1 3 2 1 3 2 ’ 需要对 !" % , !" % , !" % , !. , !. , !. 进 行 求
这里以对 !" %1 求导为例给 导, 为了方便求导操作, 出导数的求解方式, 由式 (;) 可以得到 ’ #
(>) 其中, 2 3 3 ( "2 (!"9 ・ 4 # #9 * …!"9 #$ ), 9 # 9 * … " $#$ )
3 3 2 ( "9 (!"2 , ・ # 9 * … "$ #$ ) !"9 #$ ) 9 #9 * … 3 3 1 ( "9 (!"1 ・ 5 # # 9 * … "$ #$ ) !"9 #$ ), 9 #9 * … 1 3 3 ( "1 (!"9 , ・ #9 * …!"9 #$ ) 9 # 9 * … "$ #$ ) 1 2 ( "1 (!"2 ・ 6 # !"9 #$ ), 9 # 9 * … "$ #$ ) 9 #9 * … 2 1 ( "2 (!"1 ・ , !"9 #$ ) 9 # 9 * … " $#$ ) 9 #9 * … (;) 用 # % 来表示 # % , ( ,% : 9, …, >, $, ! ") 由式 (>) 可以求出
第 !" 卷 第 " 期 #$$% 年 " 月
计算机辅助设计与图形学学报
&’()*+, ’- .’/0( 12)3+4525 52647* 8 .’/0( 12) 7)+094.6
:;<= !",*; = " />?,#$$%
! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !
[@3!!] 线性, 在实际应用中都用它的近似形式来代替 ,
原稿收到日期: 修 改 稿 收 到 日 期: ( A$!B%$"# ) 和山东省重点自然科学基金 #$$#3$@3#@; #$$#3!!3!# = 本 课 题 得 到 国 家 自 然 科 学 基 金 ( C#$$!7$!) 资助 = 孙利君, 男, 硕士研究生, 主要研究方向为 .+75, 男, 博士, 教授, 博士生导师, 主要研究 !DBD 年生, .7 = 张彩明, !D"" 年生, 方向为 .+75, 信息可视化、 医学图像处理 = 刘 .7、
$ (4
"! , ;
/ $ . #9 %#9
"$ * ;
>
$" * * 5 > * 6 >)
( .) ( .) [!!" % # ( ( ] ・!. " ), !! ") " " %, ! !
导矢的变化量 , 由于 - ./01 的局部支撑性质, 当 ( ") 在" 需要改变的控制 " 处的导矢发生变化时, ! 点个数是有限的 , 如果同时有多 个 导 矢 需 要 变 化 需要改变 时, 可以列出多个约束方程 , 一般情况下, 的控制点的个数要多于改变的导矢的个数, 这样, 方 程个数少于未知量的个数就会产生无穷多组满足约 束条件的解, 也就是说有无数条满足要求的曲线 , 这就需要确定一个目标函数, 从无数条曲线中选出 一条在某种意义下最好的曲线 , 这里我们定义的目 万方数据 标函数是使得新曲线和原曲线的偏差最小 ,
中图法分类号
&’()*+,-. %/012 34 !"#$% 5)672 89 563** :63’);+ 34 <0-.2-+ =2;+36*
6NH ,GONH CL>H J .>GFGH J ,GN *GH J
#"$!$$) ( !"##$%$ "& !"’()*$+ ,-.$/-$ 0/1 2$-3/"#"%4 ,,30/1"/% 5/.6$+7.*4 ,8. ’ /0/
( "% ! %#9
( +) ( +) ( +) ( ( ( # " )# ! " )* !! ") , * !" % ) " " %, ! "
其中, …,$ ) 为 控 制 点 的 改 变 量, ;, !"( % % : 9,
( ) ) + : 9, …, 表示 ! ( ") 在点 " "( ;, ! = ;) " 处 ! +( " ( +) 的 + 次导矢, 为曲线 ! ( ") 在" ") " 处+ 次 !! ("
!"!
基本思想
我们提出一种新的方法来达到要求的目标 , 设 & ( 表示修改后的曲线 , 为了使修改后的曲线的 ! ") 变 形 尽 可 能 地 小,我 们 考 虑
$ (!
"! , ;
"$ * ;
(;)
( ") -
) > &(;( ) 当曲线上某一点 ") $ " , 从几何的角度讲, ! 的导矢值发生变化时, 同一个节点矢量值对应新旧 曲线上不同的两个点, 这两个不同点处的一阶导数 值也可能不同 , 为了使新曲线尽量不偏离原曲线, 可以考虑让两个导矢间夹角尽可能小, 这可由让两 个导矢定义的平行四边形的面积最小来实现, 即极 小化两个导矢的叉乘, 因此其目标函数定义为
( .) [!!" % # ( " ), " %, ! !
. #9 %#9
对于任意参数 " [ "! = ;, , 当需要对 ! "# "$ < ;] ( ") 进行调整, 使 ! (" 处的导矢发生变化时, 相应 ") 的控制顶点也需要发生变化, 形成新的控制点 , 控 制点变化时需要满足的约束条件为
$ )#9
( . # 9, …, ;, / 0 !) , [;] 因此, 相应的 ?@# & )@# &" 函数 定义为 ’ #
( & %% % , ! ")
$
"$ * ; "! , ;
(;) [! " % # ( %, ! " )%#9 /
$
$
( "% ! %#9
$
* !" % )-
(;) > ( ] # $" * %, ! ")