SketchUp 曲面基础(二) SketchUp几何详述
1,SketchUp几何概述我国人教版七年级上册(初一第一学期)的数学课本里就有“点线面体”的内容。基本概念是:点动成线,线动成面,面动成体。高一年级的数学课程里又有“点线面体”,名称一样、内容深度却跟初中不一样。高中微积分初步和大学的微积分里都有对“点线面体”的研究……点积分成线,线积分成面,面积分成体……大致如此。从初中到大学都有类似的知识点,可见“点线面体”概念的重要性。 人类生活在三维的空间里(严格讲还有第四个维度,即时间维度,它代表着世间万事万物的千万种可能性,因与本书的关系不大,暂且放过不提)因为是三维空间,所以就有了三个互不干扰的方向xyz,我们可以用xyz一组三个数字来讲清楚一个“点”在三维空间里的位置。几何学中的“点”不占用空间,只是个空间位置;点作为最简单的图形概念,通常是几何学、物理学、矢量图形和其他很多领域中最基本的组成部分。如果还有另外一组用xyz表征的点,跟第一个点连起来就有了“线”;三组xyz代表的点就能够得到一个面,这些是谁都知道的道理,同样也是SketchUp与许多其它软件底层核心算法的基础。 SketchUp用户,对于“点、线、面、体”的认识与运用,还有丰富得多的内容。
1.1,SketchUp里的“点 Point”与“顶点Vertex” 1)首先,在SketchUp里的“点”,并不象数学里描述的那样,只是个“0维”的空间概念。在SketchUp里,“点”不仅仅是个空间位置,它还有实实在在的可见性、可用性与不可或缺性,“点”可由SketchUp自动生成,也可以人为创建;譬如一条直线的两个“端点”和一个“中点”,两条直线相交后新产生的端点(顶点Vertex)与中点;一条曲线上的很多端点与中点。我们也可以人为创建“构造点(辅助点)”…… 2)其次,我们可以用方括号“[x,y,z]”的形式输入“绝对坐标”;或者用尖括号“<x,y,z>”形式输入“相对坐标”,它们都可以定义一个三维空间里的点;但我们很多SketchUp用户甚至都不知道还可以用这种办法输入坐标位置来建模,所以很多人从来就不用这种方法。 3)在SketchUp里建模,当光标移动到某些特定的位置时,会有明确的提示——当前是端点,中点……在建模时,时常要利用、甚至寻找这些点来作为新建几何体的起点或参照点。 4)SketchUp中,不同边线(Edge)的交点也可称为“Vertex 顶点”,它在创建模型的过程中有着举足轻重的作用,尤其对于曲面的编辑不可或缺。
1.2 SketchUp里的“线”“Edge边线 ” 在几何学中,线是点运动的轨迹,又是面运动的起点,几何学中的线只具有位置和长度;而SketchUp里的线(边线 Edge)非但可见,还有很多不同的定义、属性和用途: 1)SketchUp里的直线,垂线、斜线、折线……每个线段都有两个端点与一个中点。 2)SketchUp里还有另外一种以虚线形式存在的直线,通常用来做参考线或辅助线。 3)直接来源于SketchUp原生工具的曲线只有圆,弧线和手绘线。 4)SketchUp可以用插件生成很多种普通与高阶的曲线,如仅Bezier Spline (贝兹曲线)一个插件就可以用来绘制“多段线”“B样条曲线”“F样条曲线”“螺旋线”“经典与高阶的贝兹曲线”……抛物线、双曲线、椭圆,波浪线、蛇形线等都可以在SketchUp里实现。 5)重要! SketchUp里的所有曲线,无论看起来多么圆滑可爱无暇,其实都是“折线”也就是说SketchUp的所有曲线都是以很多小线段“拟合”而成的。这是非常重要的概念。 6)重要! SketchUp里的所有曲线都可以用改变线段数量的办法调整其平滑度。确定足够又不过份多的线段数量在建模过程中至关重要,甚至涉及能否顺利完成模型。
1.3 SketchUp里的面(Face) SketchUp里的面(Face)大致可分成三类,几何形,修整形,与自然形:
1)几何形(或规则形):是可以用数学方法描述与构成的类型,由直线或曲线,或直曲线相结合形成的面。如正方形、长方形、三角形、梯形、菱形、圆形、半圆形、椭圆形、五角形等,具有简洁明快的秩序感,被广泛地运用在建筑、实用器物等造型设计中。 2)修整形(也称不规则形):是指人为创造的自由构成的,可随意地运用各种自由的、徒手的线条经过人为修整构成的面,具有人工造型特征和鲜明的个性。 3)自然形:是一种不可用数学方法描述与生成的自然形态,富有纯朴的视觉特征。如自然界的鹅卵石、树叶、瓜果外形,以及人体外形……等都是自然形;可以在SketchUp里用对照实物照片描绘轮廓的办法获取这一类面。 4)重要概念!SketchUp跟大多数“多边面”Polygon(Poly)建模工具一样,都是以“三边面”为底层内核算法的三维建模工具(各种软件在人机界面的表现可能不同)SketchUp模型里只有少数是真正的四边面,大多数(人工修改后的)四边面是由两个三边面拼合后隐藏掉对角线的“折面”,这个问题在后面的章节中还会多次重复提出讨论与研究。
1.4 SketchUp的曲面(Camber) 根据不同的分类标准,曲面有许多不同的分类方法,一并列出供参考,下一节还要讨论。 1)根据母线运动方式分类 l 回转面:由母线绕一轴线旋转而形成的曲面; l 非回转面:由母线根据其他约束条件运动而形成的曲面。 2)根据母线的形状分类 l 直纹曲面:凡是可以由直母线运动而成的曲面,如圆柱面、圆锥面、椭圆柱面、椭圆锥面、双曲抛物面、锥状面和柱状面等; l 双曲曲面:只能由曲母线运动而成的曲面,如球面、环面等。 l 同一个曲面可能由几种不同的运动形式形成,如圆柱面,即可以看做是直线绕着与之平行的轴线做旋转运动而成,也可以看做是一个圆沿轴向平移而形成的。 3)根据曲面能否展成平面分类 l 可展曲面:能展开成平面的曲面。如柱面、锥面; l 不可展曲面:不能展开成平面的曲面,如椭圆面、椭圆抛物面、曲线回转面。 l 一般只有直纹曲面才有可展曲面与不可展曲面之分,双曲曲面都是不可展曲面。
1.5 SketchUp里的“体”(Entity) 几何学中的“体”可以解释为“多个面围成的几何体”也可以解释为“占有一定空间的几何体”; 即:一个规则图形,通过旋转、平移等运动,形成的轨迹变成的三维图形称为“体”。而SketchUp里的“体 (Entity)”的形态还要更多一些,大概包括以下几类: 1)经典柱体:包括圆柱和棱柱。棱柱又可分为直棱柱和斜棱柱,按底面边数的多少又可分为三棱柱、四棱柱、N棱柱…… 2)经典锥体:包括圆锥体和棱锥体,棱锥分为三棱锥、四棱锥及N棱锥……
2,SketchUp的曲线与曲面这一节的内容将分成两大部分来介绍与讨论:分别为“关于曲线”与“关于曲面”。内容可能会有点枯燥。虽然这本书的内容(包括在SketchUp实际建模操作)多少跟数学与几何学有关,但它终究不是以研究讨论数学或几何学为最终目标的,所以下面的内容中,除了实在有必要的部分之外,尽可能直接给出通俗易懂的结果,避免枯燥乏味的过程推导。如果有兴趣深入研究相关的理论基础,可查阅04节文后附上的参考文献。
2.1关于“曲线” 曲线是构建曲面的基础,在曲面的理论研究与应用中占有非常重要的地位。想要讨论“曲面”就离不开先要了解“曲线”, 所以现在就从“曲线”开始。
2.1.1,曲面的基础——曲线 “曲线”是“点”运动的轨迹。按照点运动时有无一定的规律,曲线可分为规则曲线与不规则曲线。按曲线上各点的相对位置,曲线又可分为平面曲线与空间曲线。 1)平面曲线:移动的各点都位于同一平面上的曲线是平面曲线,如圆、椭圆、双曲线、抛物线、渐开线、阿基米德涡线等,研究平面曲线的工具是平面解析几何。 2)空间曲线:任意连接四点不位于同一平面的曲线就是空间曲线,如各种螺旋线以及曲面在一般情况下相交所形成的交线;研究空间曲线的工具是微积分。
2.1.2,曲线的结构特征 因为曲线是点的集合,所以画出曲线上的一系列的点,并将各点依次光滑连接得到该曲线,这是绘制曲线的一般方法。若能画出曲线上一些特殊的点,如最高点、最低点、最左点、最右点、最前点及最后点等,并光滑连接则可更确切地表示曲线。
2.1.3,曲线的“阶次” 我们时常会见到以“阶次”的高低来描述曲线。曲线阶数的值越大,受控制点的影响越小(也就是越可以精确调整)曲率就更加平缓顺滑。当阶数为1时就是折线。多项式中的最大指数称为多项式的“阶次”;例如6x3+3x3-8x=10 的阶次为3阶;而5x4+6x3-7x=10 的阶次为4阶。 其实曲线的阶次仅用于判断曲线的复杂程度,而不是精确程度。曲线的阶次越高,曲线就越复杂,计算量就越大。使用低阶曲线则更加灵活,更有利于后续操作(如显示、编辑与分析等)运行速度也更快。还便于与其他计算机辅助设计系统进行数据交换,所以许多计算机辅助设计工具通常只接受三次曲线。一般来讲,最好使用低阶曲线,这就是各种计算机辅助设计软件中默认的曲线阶次都为低阶的原因。SketchUp当然也不例外。
2.1.4,曲线的形式 曲线按数学形式分类可以分为直线、二次曲线(如圆弧、圆、椭圆、双曲线、抛物线等)、样条曲线等。样条曲线又可分为B样条曲线和非均匀有理B样条曲线等,因为非均匀有理B样条曲线现已作为世界工业标准,所以一般无特别说明的,都指非均匀有理B样条曲线“Non-Uniform Rational B-Splines”即缩写“NURBS”(请查阅前一节的介绍) 曲线的连续性通常有点连续、切线连续、曲率连续,以曲率连续最为光滑。
2.1.5,规则曲线 规则曲线就是按照一定规律分布的曲线。规则曲线根据结构分布特点可分为平面和空间规则曲线,分别介绍如下;
1)平面规则曲线:凡曲线上所有的点都属于同一平面,则该曲线称为平面曲线。常见的圆、椭圆、抛物线和双曲线等可以用二次方程描述。见下图。平面曲线的投影性质(略)
图1.3.1 平面规则曲线
2)空间规则曲线:凡是曲线上有任意四个连续的点不属于同一平面,则称该曲线为空间曲线。常见的空间规则曲线有圆柱螺旋线和球面螺旋线等,如下图①②③是三种空间规则曲线的正视图,④⑤⑥所示的是①②③对应的俯视图。
图1.3.2 空间规则曲线
2.1.6,不规则曲线 又称自由曲线,是指形状比较复杂、不能用二次方程准确描述的曲线。其涉及的问题有两个方面:一是被修改过的自由曲线,使其满足设计者的要求,如下图②。二是由已知的离散点确定的曲线,如下图①。使用平面离散点获得曲线特征,则必须首先通过拟合方式形成光滑的曲线。离散点确定了曲线的大致形状,拟合就是强制曲线沿着这些点绘制出样条曲线。拟合的方法大致有“插值拟合”如下图①所示与“逼近拟合”如下图②所示等(见图知意,不展开讨论)
图1.3.3 不规则曲线例(插值拟合与逼近拟合)
2.2,关于“曲面” 曲面可看成是一条动线(母线),在给定的条件下,在空间连续运动的轨迹。常见的有平面、旋转面和二次曲面。圆锥的侧面是曲面,但展开后是平面。
2.2.1 曲面的分类 1)根据形成曲面的母线形状分类,曲面可分为: l 直线面:由直母线运动而形成的曲面。如下图①②③所示。 l 曲线面:由曲母线运动而形成的曲面。如下图④和⑤所示。红线为旋转轴。
图1.3.4 直线面与曲线面
2)按曲面形成的原理分类(不展开详细讨论) l 函数曲面:是指能由解析函数表达来表示的曲面,又称解析曲面。如常见的球面、椭球面、圆柱面、双曲抛物面等。这些曲面都属于二次曲面。所谓二次曲面,即曲面的解析表达式是最高次数为2次的代数表达式。 l 自由曲面:当曲面不能由解析函数表达式来表示时,称之为自由曲面。
2.2.2 曲面的结构特征 所有的面都可以归类为曲面。平面是曲面的一种,平面是曲率为0的曲面。常见的曲面还有旋转曲面和二次曲面、直纹面、可展曲面、极小曲面、多面曲面、单侧曲面等。
1)旋转曲面,也称回转曲面,是一类特殊的曲面,它是一条平面曲线绕着它所在的平面上一条固定直线旋转一周所生成的曲面。该固定直线称为旋转轴,该旋转曲线称为母线。曲面和过旋转轴的平面的交线称为经线或子午线,见下图①;曲面和垂直于旋转轴的平面的交线称为纬线或平行圆。见下图②。
2)二次曲面直线与二次曲面相交于两个点;如果相交于三个点以上,那么此直线全部在曲面上。这时称此直线为曲面的母线。如果二次曲面被平行平面所截,其截线是二次曲线。通常我们将三元二次方程所表示的曲面称为二次曲面,如下图③④所示。平面叫做一次曲面。
图1.3.5 旋转曲面与二次曲面
有人统计过,二次曲面可归纳为12种,如下所列:(截图略) (1)圆柱面(Cylindrical surface)
(2)椭圆柱面(Elliptic cylinder)
(3)双曲柱面(Hyperbolic cylinder)
(4)抛物柱面(Parabolic cylinder)
(5)圆锥面(Conical surface)
(6)椭圆锥面(Elliptic cone)
(7)球面(Sphherical surface)
(8)椭球面(Ellipsoid)
(9)椭圆抛物面(Elliptic paraboloid)
(10)单叶双曲面(Hyperboloid of one sheet)
(11)双叶双曲面(Hyperboloid of two sheets)
(12)双曲抛物面(马鞍面)(Hyperbolic paraboloid)
3)直纹面 可以描述为直线扫过的一组点形成的面,如下图①②③⑤⑥所示。如保持线的一个点固定,另一个点沿着圆移动形成锥体如下图④所示。如果通过其每个点都有两条不同的线,那么表面是双重的。双曲抛物面和双曲面是双重曲面(截图略)。
4)直纹曲面 在几何学中“由一条直线通过连续运动构成的曲面则可称其为直纹曲面”最常见的直纹曲面是平面、柱面和锥面。著名的莫比乌斯环也是直纹曲面(截图略)
图1.3.6 直纹面与直纹曲面
5)可展曲面 是在其上每一点处高斯曲率为零的曲面。有个一般性的定理表明:一片具有常数高斯曲率的曲面能够经弯曲(非拉伸、收缩、皱褶或撕裂)而变为任何一片具有相同常数高斯曲率的曲面。图1.3.7是两个例子。
图1.3.7 可展曲面例
6)经典旋转体:包括圆柱、圆台、圆锥、球、球冠、弓环、圆环、堤环、扇环、枣核形等……。 7)跟随体:一个截面沿路径连续移动形成的“体”形状千变万化无穷无尽。(略) 8)修整体:经修整后的原始几何体,修整可能是移动过顶点、线或面或经布尔运算。 9)点云体:这是传统经典几何学里没有的几何体类别,以光学扫描或非光学手段获得的数据创建的几何体。
3,SketchUp里立体的分类
在展开讨论SketchUp如何实现曲面创建之前,先回顾一下几何学里“立体的分类”,几何学里把立体分成“曲面立体”与“平面立体”,分别简述如下:(例子都是理想的“正几何体”)
1)曲面立体:是由曲面或曲面与平面围成的基本几何体。常见的曲面立体如下图所示:有圆柱 ①、圆锥 ③、半球体④,圆环 ⑤,正半球⑥,等;圆锥被截顶则成了如②所示的“锥台”。曲面立体的曲表面可以看作是母线绕轴线回转而形成的,因此,这类曲面立体又称为“回转体”,其曲表面称为“回转面”。
图1.4.1 曲面立体例
2)平面立体:由若干平面围成的基本几何体称为平面立体。平面立体主要有棱柱和棱锥两种。棱柱的棱线互相平行,如下图①与④,棱锥的棱线交于一点,如下图②与⑤,棱锥被截顶则形成“棱台”如下图的③和⑥。
图1.4.2 平面立体
3)SketchUp里的多面体 3D建模领域广泛应用着三边面和四边面作为基础拓扑单元,有些特殊的地方还使用五边面、六边面和七边面,请看下图的一些实例:①②是两个以三边面为基础单元的几何体;③所示的三个对象,看起来都是以四边面为基础的几何体,其实只有圆环才是,两个球体的南北极都是三边面;④是个十二面体,全部由五边面组成;⑤是六边面和五边面混合而成的球体。
有些声称可以把三边面转换成四边面的工具,其实是把两个相邻的三边面合并在一起,隐藏了拼合的对角线,看起来像是四边面,其实质仍然是三边面,这种四边面称为“non-planar quads”也就是“非平面四边面”,这是SketchUp曲面建模中要记住的一个重要概念。
图1.4.3 多面体
|