⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 计算机图形学网络课程
💻
📖 第 1 页 / 共 5 页
字号:
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_035.htm"><span
style='text-decoration:none;text-underline:none'><!--[if gte vml 1]><v:shapetype
 id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
 path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
 <v:stroke joinstyle="miter"/>
 <v:formulas>
  <v:f eqn="if lineDrawn pixelLineWidth 0"/>
  <v:f eqn="sum @0 1 0"/>
  <v:f eqn="sum 0 0 @1"/>
  <v:f eqn="prod @2 1 2"/>
  <v:f eqn="prod @3 21600 pixelWidth"/>
  <v:f eqn="prod @3 21600 pixelHeight"/>
  <v:f eqn="sum @0 0 1"/>
  <v:f eqn="prod @6 1 2"/>
  <v:f eqn="prod @7 21600 pixelWidth"/>
  <v:f eqn="sum @8 21600 0"/>
  <v:f eqn="prod @7 21600 pixelHeight"/>
  <v:f eqn="sum @10 21600 0"/>
 </v:formulas>
 <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
 <o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt=""
 href="..\CG_Txt_3_035.htm" style='width:21pt;height:37.5pt' o:button="t">
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image001.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/material/CG_Gif_pub_021.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=28 height=50
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image001.gif" v:shapes="_x0000_i1025"><![endif]></span></a></span></b><b><span
lang=EN-US style='font-family:幼圆;color:gray'><a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_035.htm"><span
style='color:gray'>引言</span></a><o:p></o:p></span></b></p>

<p style='line-height:200%'>实体造型技术的研究可以追到溯到六十年代初期,不过,直到六十年代后半期,有关实体造型的报道仍然很少。七十年代初期,出现了一些实体造型系统,如英国剑桥大学的<span
lang=EN-US>BUILD-1系统,德国柏林工业大学的COMPAC系统,日本北海道大学的TIPS-1系统和美国罗切斯特大学的PADL-1、PADL-2系统等。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 这些早期的实体造型系统有一个共同的特点:用多面体表示形体,不支持精确的曲面表示。多面体模型的优点是数据结构相对简单,集合运算、明暗图的生成和显示速度都较快。但是,同一系统中存在两种表示:精确的曲面表示和近似的多面体逼近,违背了几何定义唯一性原则。而且,曲面形体使用多面体模型只是近似表示,存在误差。若要提高表示精度时,就需要增加离散的平面片的数量,而庞大的数据量对计算速度和计算机的存储管理的影响,也是难以接受的。显然,要为了解决这个问题,就需要在几何造型系统中采用精确的形体表示模型。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 六、七十年代,雕塑曲面的研究取得了很大的进展。<a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_059.htm"><span
style='color:red'>Coons曲面</span></a>、 <a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_014.htm"><span
style='color:red'>Bezier曲线和曲面</span></a>、<a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_021.htm"><span
style='color:red'>B样条曲线和曲面</span></a>等设计方法相继提出,并在汽车、航空和造船等行业得到了广泛的应用。曲面造型系统由于缺乏面片的连接关系,不仅使曲面的交互修改非常复杂,而且也难于构造封闭的形体。实体造型系统则由于不能有效地处理复杂曲面,也使其几何造型的覆盖域受到了很大的限制。自然,如何构造能够精确表示形体的几何造型系统,成了人们研究的目标。1978年,英国Shape
Data公司推出了实体造型系统Romulus,并首次引入了精确的二次曲面,二次曲面的表示采用了代数方程的形式。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 八十年代末,出现了</span><span
lang=EN-US style='font-family:宋体size=3'><a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_027.htm"><span
style='color:red'>NURBS曲线、曲面</span></a>设计方法,已有的曲线曲面表示方法:如</span><span
lang=EN-US>Bezier方法、B样条方法等,可以用NURBS方法统一表示,且能精确表示二次曲线曲面。由于NURBS强大的表示能力,能够精确表示形体的几何造型系统,纷纷采用了NURBS方法,国际标准化组织也已将NURBS作为定义工业产品形状的唯一数学方法。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 早期的几何造型系统还有一个特点,就是只支持正则的形体造型。正则形体集(R-Set)的概念由罗切斯特大学Requicha引入造型系统,并为几何造型奠定了初步的理论基础。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 为了描述正则形体,引入了二维流形(2-manifold)的概念。所谓<span
style='color:maroon'>二维流形</span>是指这样一些面,其上任一点都存在一个充分小的邻域,该邻域与平面上的圆盘是同构的,即在该邻域与圆盘之间存在连续的1-1映射。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 对于任一形体,如果它是3维欧氏空间</span><i><span
lang=EN-US style='font-family:"Times New Roman"'>R</span></i><sup><span
lang=EN-US style='font-family:"Times New Roman"'>3</span></sup>中非空、有界的封闭子集,且其边界是二维流形(即该形体是连通的),我们称该形体为<span
style='color:maroon'>正则形体</span>,否则称为<span style='color:maroon'>非正则形体</span>。图<span
lang=EN-US>3.2.1给出了一些非正则形体的实例。</span></p>

<p align=center style='text-align:center;line-height:200%'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1026" type="#_x0000_t75" alt="" style='width:342pt;height:137.25pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image002.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_039.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=456 height=183
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image002.gif" v:shapes="_x0000_i1026"><![endif]></span></p>

<p align=center style='text-align:center;line-height:200%'><span
style='font-family:隶书;color:#FF9900'>图<span lang=EN-US>3.2.1 非正则形体实例</span></span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 基于正则形体表示的实体造型形体只能表示正则的三维“体”,低于三维的形体是不能存在的。这样,线框模型中的“线”,表面模型中的“面”,都是实体造型系统中所不能表示的。但在实际应用中,有时候人们希望在系统中也能处理象形体中心轴、剖切平面这样低于三维的形体,这就要求造型系统的数据结构能统一表示线框、表面、实体模型。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 集合运算(并、交、差)是构造形体的基本方法,正则形体经过集合运算后,可能会产生悬边、悬面等低于三维的形体,如图3.2.2所示。Requicha在引入正则形体概念的同时,还定义了正则集合运算的概念,正则集合运算保证集合运算的结果仍是一个正则形体,即丢弃悬边、悬面等,如图3.2.3所示。但是,这些信息在很多应用中是有用的,不能丢弃,这也要求几何造型系统要能够表示边、面等低于三维的形体。即是说,几何造型系统要求能够处理非正则形体,于是,产生了非正则造型技术。</span></p>

<p align=center style='text-align:center;line-height:200%'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1027" type="#_x0000_t75" alt="" style='width:200.25pt;height:112.5pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image003.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_040.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=267 height=150
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image003.gif" v:shapes="_x0000_i1027"><![endif]></span></p>

<p align=center style='text-align:center;line-height:200%'><span
style='font-family:隶书;color:#FF9900'>图<span lang=EN-US>3.2.2 二个二维图形的交产生一个退化的结果</span></span></p>

<p align=center style='text-align:center;line-height:200%'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1028" type="#_x0000_t75" alt="" style='width:294.75pt;height:202.5pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image004.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_041.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=393 height=270
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image004.gif" v:shapes="_x0000_i1028"><![endif]></span></p>

<p align=center style='text-align:center;line-height:200%'><span
style='font-family:隶书;color:#FF9900'>图<span lang=EN-US>3.2.3 集合和正则的交运算</span></span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 九十年代以来,基于约束的参数化、变量化造型和支持线框、曲面、实体统一表示的非正则形体造型技术已成为几何造型技术的主流。</span></p>

<p><span lang=EN-US><![if !supportEmptyParas]>&nbsp;<![endif]><o:p></o:p></span></p>

<p><b><span lang=EN-US style='font-size:10.0pt;font-family:幼圆;color:gray'><a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_036.htm"><span
style='text-decoration:none;text-underline:none'><!--[if gte vml 1]><v:shape
 id="_x0000_i1029" type="#_x0000_t75" alt="" href="..\CG_Txt_3_036.htm"
 style='width:21pt;height:37.5pt' o:button="t">
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image001.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/material/CG_Gif_pub_021.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=28 height=50
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image001.gif" v:shapes="_x0000_i1029"><![endif]></span></a></span></b><b><span
lang=EN-US style='font-family:幼圆;color:gray'><a
href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/CG_Txt_3_036.htm"><span
style='color:gray'>形体表示模型</span></a><o:p></o:p></span></b></p>

<p style='line-height:200%'>在实体模型的表示中,出现了许多方法,基本上可以分为分解表示、构造表示和边界表示三大类。</p>

<p><span lang=EN-US>&nbsp;&nbsp;&nbsp; 1.分解表示</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; <span
style='color:maroon'>分解表示</span>是将形体按某种规则分解为小的、更易于描述的部分,每一小部分又可分为更小的部分,这种分解过程直至每一小部分都能够直接描述为止。分解表示的一种特殊形式是每一个小的部分都是一种固定形状(正方形、立方体等)的单元,形体被分解成这些分布在空间网格位置上的具有邻接关系的固定形状单元的集合,单元的大小决定了单元分解形式的精度。根据基本单元的不同形状,常用四叉树、八叉树和多叉树等表示方法。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 分解表示中一种比较原始的表示方法是将形体空间细分为小的立方体单元,与此相对应,在计算机内存中开辟一个三维数组。凡是形体占有的空间,存储单元中记为1;其余空间记为0。这种表示方法的优点是简单,容易实现形体的交、并、差计算,但是占用的存储量太大,物体的边界面没有显式的解析表达式,不便于运算,实际上并未采用。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 图3.2.4 是八叉树表示形体的一个实例。八叉树法表示形体的过程是这样的,首先对形体定义一个外接立方体,再把它分解成八个子立方体,并对立方体依次编号为0,1,2,…,7。如果子立方体单元已经一致,即为满(该立方体充满形体)或为空(没有形体在其中),则该子立方体可停止分解;否则,需要对该立方体作进一步分解,再一分为八个子立方体。在八叉树中,非叶结点的每个结点都有八个分支。八叉树表示法有一些优点,近年来受到人们的注意。这些优点主要是:</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; (1)形体表示的数据结构简单。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; (2)简化了形体的集合运算。对形体执行交、并、差运算时,只需同时遍历参加集合运算的两形体相应的八叉树,无需进行复杂的求交运算。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; (3)简化了隐藏线(或面)的消除,因为在八叉树表示中,形体上各元素已按空间位置排成了一定的顺序。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; (4)分析算法适合于并行处理。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 八叉树表示的缺点也是明显的,主要是占用的存储多,只能近似表示形体,以及不易获取形体的边界信息等。</span></p>

<p align=center style='text-align:center'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1030" type="#_x0000_t75" alt="" style='width:380.25pt;height:418.5pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image005.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_042.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=507 height=558
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image005.gif" v:shapes="_x0000_i1030"><![endif]></span></p>

<p align=center style='text-align:center'><span style='font-family:隶书;
color:#FF9900'>图<span lang=EN-US>3.2.4 用八叉树表示形体</span></span></p>

<p><span lang=EN-US>&nbsp;&nbsp;&nbsp; 2.构造表示</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; <span
style='color:maroon'>构造表示</span>是按照生成过程来定义形体的方法,构造表示通常有扫描表示、构造实体几何表示和特征表示三种。 </span></p>

<p style='margin-left:36.0pt;text-indent:-18.0pt;line-height:200%;mso-list:
l13 level1 lfo1;tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US
style='font-size:10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol'>·<span
style='font:7.0pt "Times New Roman"'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span></span><![endif]>扫描表示<span lang=EN-US> </span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;<span
style='color:red'>&nbsp; </span><span style='color:maroon'>扫描表示</span>是基于一个基体(一般是一个封闭的平面轮廓)沿某一路径运动而产生形体。可见,扫描表示需要两个分量,一个是被运动的基体,另一个是基体运动的路径;如果是变截面的扫描,还要给出截面的变化规律。图3.2.5
给出了扫描表示的一些例子,(a)是拉伸体(扫描路径是直线),(c)是回转体,(b)、(d)扫描体的扫描路径是曲线,且(b)是等截面扫描,(d)是变截面扫描。</span></p>

<p style='line-height:200%'><span lang=EN-US>&nbsp;&nbsp;&nbsp; 扫描是生成三维形体的有效方法,但是,用扫描变换产生的形体可能出现维数不一致的问题。如图3.2.6所示,其中(a)图表示一条曲线经平移(扫描路径是直线)扫描变换后产生了一个表面和二条悬边;(b)图中一条曲线经平移扫描变换后产生的形体是两个二维的表面间有一条一维的边相连;(c)、(d)图中表示扫描变换的基体本身维数不一致,因而产生的结果形体也是维数不一致且有二义性。另外,扫描方法不能直接获取形体的边界信息,表示形体的覆盖域非常有限。</span></p>

<p align=center style='text-align:center'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1031" type="#_x0000_t75" alt="" style='width:316.5pt;height:270pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image006.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_043.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=422 height=360
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image006.gif" v:shapes="_x0000_i1031"><![endif]></span></p>

<p align=center style='text-align:center'><span style='font-family:隶书;
color:#FF9900'>图<span lang=EN-US>3.2.5 生成扫描形体的例子</span></span></p>

<p align=center style='text-align:center'><span lang=EN-US><!--[if gte vml 1]><v:shape
 id="_x0000_i1032" type="#_x0000_t75" alt="" style='width:354.75pt;height:240pt'>
 <v:imagedata src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image007.gif" o:href="http://learn.bitsde.com/hep/jisuanjituxing/Chapter3/32img/CG_Gif_3_044.gif"/>
</v:shape><![endif]--><![if !vml]><img border=0 width=473 height=320
src="./第三章%20几何造型技术2(形体在计算机内的表示等).files/image007.gif" v:shapes="_x0000_i1032"><![endif]></span></p>

<p align=center style='text-align:center'><span style='font-family:隶书;
color:#FF9900'>图<span lang=EN-US>3.2.6 生成扫描体时维数不一致的情况</span></span></p>

<ul type=disc>
 <li class=MsoNormal style='mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;
     mso-list:l6 level1 lfo2;tab-stops:list 36.0pt'><span style='font-family:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -