栏目导航

  1. www.hg9938.com
  2. www.hg9937.com
  3. www.hg5798.com

您现在所在的位置:www.hg9938.com > www.hg9937.com > 正文

b ? A shared- (b ? B)} 根基观点——平面多面体与欧

更新时间:2019-11-26   浏览次数:

  图形的暗示取数据布局 ? 根基概念 ? 三维形体的暗示 ? 不法则对象的暗示 ? 条理建模 1 4.1 根基概念 ? 制型手艺 ? 根基图形元素 ? 几何消息取拓扑消息 ? 坐标系 ? 实体的定义 ? 正则调集运算 ? 欧拉公式 2 根基概念——制型手艺 ? 把研究若何正在计较机中成立得当的模子暗示分歧 图形对象的手艺称为制型手艺。 ? 有两类图形对象: 法则对象:几何制型、几何模子。 能用欧氏几何加以描述的对象 犯警则对象:过程式模仿。 不克不及用欧氏几何加以描述的对象 3 根基概念——根基图形元素 ? 根基图形元素:图素或图元、体素。 ? 图素是指能够用必然的几何参数和属性参数描 述的最根基的图形输出元素。 ? 正在二维图形系统中将根基图形元素称为图素或 图元,正在三维图形系统中称为体素。 4 根基概念——几何消息取拓扑消息 图形对象的描述离不开大量的图形消息和非图形消息。 ? 图形消息 包罗图形对象,形成对象的 点、线、面的和几何尺寸, ? 几何消息:形体正在欧氏空间中的和大小。 以及它们彼此之间的关系等 ? 拓扑消息:形体各分量(点、边、面)的数目 及其彼此间的毗连关系。 ? 非图形消息 图形的线性、颜色、亮度以 及供模仿和阐发用的质量、比沉、 体积等数据 5 v f f f 面相邻性 f:{f} f f f v 极点—面相邻性 v:{f} f e f 极点相邻性 v:{v} v e v 边-面相邻性 e:{f} 边-极点包含性 e:{v} e e e e e 极点-边相邻性 v:{e} v v 面-极点包含性 f:{v} v v v e v e e f v e e e f e 面-边包含性 f:{e} 边相邻性 e:{e:} 图4.1 拓扑消息 根基概念——几何消息取拓扑消息 ? 刚体活动:不改变图形上肆意两点间的距离, 也不改变图形的几何性质的活动。 ? 拓扑活动:答应形体做弹性活动,即正在拓扑关 系中,对图形可随便地扭曲。但图上各个 点仍为分歧的点,决不答应把分歧的点归并成 一个点。 7 根基概念——坐标系 ? 建模坐标系(Modeling Coordinate System) ? 用户坐标系 ? 察看坐标系(Viewing Coordinate System) ? 规格化设备坐标系(Normalized Device coordinate System) ? 设备坐标系(Device Coordinate System) 8 根基概念——实体 图4.2 带有吊挂边的立方体 9 根基概念-实体 ? 点的范畴:若是P是点集S的一个元素,那么点P的以R (R0)为半径的范畴指的是环绕点 P的半径为 R的小 球(二维环境下为小圆)。 ? 开集的闭包:是指该开集取其所有鸿沟点的调集并集, 本身是一个闭集。 ? 正则集:由内部点形成的点集的闭包就是正则集,三维 空间的正则集就是正则形体。 10 根基概念-实体 ? 构成三维物体的点的调集能够分为两类: ? 内点为点集中的如许一些点,它们具有完全 包含于该点集的充实小的范畴。 ? 鸿沟点:不具备此性质的点集中的点。 11 根基概念——实体 ? 定义点集的正则运算r运算为: r ? A ? c ?i ? A ? 正则运算即为先对物体取内点再取闭包的运算。 r· A称为A的正则集。 12 根基概念——实体 (a)带有孤立点和边 的二维点集A (b)内点调集i·A (c)正则点集c·i·A 图4.3 实体的例子 13 根基概念——实体 图4.4 正则形体 14 根基概念——实体 ? 二维流形指的是对于实体概况上的肆意一点, 都能够找到一个环绕着它的肆意小的范畴,该 范畴取平面上的一个圆盘是拓扑等价的。 (a)二维流形 (b)二维流形 图4.5 正则形体 (c)非二维流形 15 根基概念——实体 ? 实体:对于一个占领无限空间的正则形体,如 果其概况是二维流形,则该正则形体为实体。 16 根基概念——正则调集运算 ? 无效实体的封锁性。 ? 把可以或许发生正则形体的调集运算称为正则调集运 算。 17 根基概念——正则调集运算 A B A B (a)A取B C C* (b) (c)调集运算 C=A∩B (d) 正则调集运算 C*=A∩*B 图4.6 调集运算取正则调集运算 18 根基概念——正则调集运算 PA PB P PA PB RA RB RA RB R 图4.7 基于点的范畴概念生成正则形体 19 b· B out A A B A B A b· A in BB b· B in A b· A out B b· A shared b· B b· A shared b· B A b· A shared (b· B) B -(b· B in A) b· A out B A∪*B A∩*B A―*B 图4.8 正则调集运算A∪*B,A∩*B,A―*B的成果(实线暗示成果形体的鸿沟) b ? (A ?* B) ? {b ? A out B, b ? B out A, b ? A shared b ? B} b ? (A ?* B) ? {b ? A in B, b ? B in A, b ? A shared b ? B} b ? (A -* B) ? {b ? A out B, - (b ? B in A),b ? A shared- (b ? B)} 根基概念——平面多面体取欧拉公式 ? 欧拉公式证明简单多面体的极点数V、边数E和面 数F满脚如下关系:V-E+F=2。 ? 非简单多面体需对欧拉公式加以扩展。令 H 暗示 多面体概况上孔的个数, G 暗示贯穿多面体的孔 的个数, C 暗示的、不相毗连的多面体数, 则扩展后的欧拉公式为:V-E+F-H=2(C-G)。 21 根基概念——平面多面体取欧拉公式 8-12+6=2 5-8+5=2 6-12+8=2 24-36+15-3=2×(1-1) 图4.9 平面多面体取欧拉公式 22 4.2 三维形体的暗示 ? 线框模子取实体模子(实体系体例型手艺) ? 能够将实体模子的暗示大致分为三类: ? 边 界 表 示 ( Boundary representation, Breps) ? 构制实体几何暗示 ? 空间朋分(Space-partitioning)暗示 23 三维形体的暗示 ? 多边形概况模子 ? 扫描暗示 ? 构制实体几何法 ? 空间列举暗示 ? 八叉树 ? BSP树 ? OpenGL中的实体模子函数 24 多边形概况模子 ? 鸿沟暗示 (B-reps) 的最遍及体例是多边形表 面模子,它利用一组包抄物体内部的平面多 边形,也即平面多面体,来描述实体。 体 D 面 A ABC AB BC A ABD CA B BCD AD C BD D ACD CD V C 边 极点 B 图4.10 四面体及其点、边、面的关系 25 多边形概况模子——数据布局 ? 几何消息 ? 成立3张表:极点表、边表和多边形表来存 储几何数据。 ? 实体模子中,用多边形极点坐标值以及多边 形所正在平面方程体例保留实体单个概况部门 的空间标的目的消息 26 多边形概况模子——数据布局 ? 拓 扑 信 息 : 翼 边 结 构 表 示 ( Winged Edges Structure) E1 V1 E2 F1 F2 E E3 V2 E4 图4.11 翼边布局暗示 27 多边形概况模子——数据布局 ? 属性消息 用属性表来存储多边形面的属性,指明 物体通明度及概况反射度的参数和纹理特征 等等。 28 多边形概况模子 ? 多边形网格:三维形体的鸿沟凡是用多边形网 格(polygon mesh)的拼接来模仿。 ? 例子 图4.12 三角形带取四边形网格 29 扫描暗示(sweep representation) ? 扫描暗示法(sweep representation)能够操纵 简单的活动法则生成无效实体。 ? 包含两个要素 ? 一是做扫描活动的根基图形(截面); ? 二是扫描活动的体例。 30 构制实体几何法 ? 构制实体几何法( CSG,Constructive Solid Geometry)由两个实体间的并、交或差操做 生成新的实体。 A B (a)A,B形体的并 A B (b)A,B形体的差 A B (c)A,B形体的交 图4.13 构制实体几何法 31 构制实体几何法 ? 正在构制实体几何法中,调集运算的实现过程可 以用一棵二叉树(称为CSG树)来描述。 ? 树的叶子是根基体素或是几何变换参数; ? 树的非终端结点是于其子结点的正则集 合算子(正则并、正则交和正则差)或几何 变换的定义。 32 构制实体几何法 Y Y 1 -1 0 -1 P1 1 2 3 4 X 1 0 P2 4 X (a) (b) C U U U P1 T(平移) U P2 T P1 T △x=2 △y=2 Y 1 -1 0 -1 P1 1 2 3 4 X T(平移) P1 P1 △x=4 P2 △y=2 -2 △x=2 (c) CSG树 (d) 由CSG树发生的形体 图4.14 由CSG树发生二维形体的实例 33 构制实体几何法 ? 长处:若是体素设置比力齐备,通过调集运算 就能够构制出多种分歧的合适需要的实体。 ? 错误谬误一:调集运算的两头成果难以用简单的代 数方程暗示,求交坚苦。 ? 错误谬误二: CSG树不克不及显式地暗示形体的鸿沟, 因此无法间接显示CSG树暗示的形体。 34 构制实体几何法 ? 处理:光线投射算法 投影平面 xy y B x A z z (a) (b) 射线 光线投射算法 (实体A∪B取ad,实体A∩B则取cb,实体A-B则取ab) 35 空间列举暗示 ? 空间列举暗示法将包含实体的空间朋分 为大小不异、外形法则(正方形或立方体) 的体素,然后,以体素的调集来暗示图形对 象。 ? 二维环境,常用二维数组存放。 ? 三维环境下,常用三维数组 p[i][j][k] 来存 放。 36 八叉树 ? 八叉树( octrees)又称为分层树布局,它对 空间进行自顺应划分,采器具有条理布局的八 叉树来暗示实体。 37 八叉树——四叉树 象限1 象限2 1 2 3 4 B B B B E B F B E B B B 象限4 (a) 象限3 E E F E F F F F (b) E E F E F F F E E F E E ...... B F F B 图4.16 二维图的四叉树暗示 38 八叉树 z 6 5 2 8 y 7 4 1 3 x 1 2 3 4 5 6 7 8 图4.17 三维空间分成八个卦限及其节点暗示 39 BSP树 ? 二 叉 空 间 分 割 ( Binary Space Partitioning,BSP)树方式是一品种似于 八叉树的空间朋分方式,它每次将一实体用 任一和任一标的目的的平面分为二部门(不 同于八叉树方式的每次将实体用平行于笛卡 尔坐标平面的三个两两垂曲的平面朋分)。 40 OpenGL中的实体模子函数 ? GLUT库中的多面体函数 表4.1 GLUT生成法则多面体的函数 函数 glutSolidTetrahedron( ) glutWireTetrahedron( ) glutSolidCube(size) glutWireCube(size) glutSolidOctahedron ( ) glutWireOctahedron ( ) glutSolidDodecahedron( ) glutWireDodecahedron( ) glutSolidIcosahedron( ) glutWireIcosahedron( ) 申明 绘制核心位于世界坐标系原点的实心四面体和线框四面体,四面体的半 径为 3。 绘制核心位于世界坐标系原点的实心立方体和线框立方体,立方体的半 径为size,size是一个双精度浮点值。 绘制核心位于世界坐标系原点的实心八面体和线框八面体,八面体的半 径为1.0。 绘制核心位于世界坐标系原点的实心12面体和线。 绘制核心位于世界坐标系原点的实心20面体和线 OpenGL中的实体模子函数 ? GLUT库中的二、三次曲面 ? 绘制实体或线框球面 void glutSolidSphere/glutWireSphere (GLdouble radius, GLint slices, GLint stacks); ? 绘制实体或线框圆锥面 void glutSolidCone/glutWireCone (GLdouble radius, GLdouble height, GLint slices, GLint stacks); 42 OpenGL中的实体模子函数 ? 绘制实体或线框圆环 void glutSolidTorus/ glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint slices,GLint stacks); ? 绘制实体或线框茶壶 void glutSolidTeapot/glutWireTeapot (GLdouble size); 43 OpenGL中的实体模子函数 ? GLU二次曲面函数 ? 定义一个二次曲面 GLUquadricObj *sphere; ? 激活二次曲面绘制器 sphere = gluNewQuadric( ); ? 指定二次曲面的绘制体例 gluQuadricDrawStyle(sphere, GLU_LINE); 44 OpenGL中的实体模子函数 ? 绘制二次曲面 gluSphere(sphere, radius, slices, stacks); gluCylinder(sphere,baseRadius,topRadius, height, slices, stacks); gluDisk(sphere,innerRadius,outerRadius, slices, stacks); 45 不法则对象的暗示 ? 分形几何 ? 外形语法 ? 粒子系统 ? 基于物理的建模 ? 数据场的可视化 46 分形几何(fractal geometry) ? 分形几何物体具有一个根基特征:无限的自相 似性。 ? 无限的自类似性是指物体的全体和局部之间细 节的无限沉现。 47 分形几何(fractal geometry) ? 分形维数,又称分数维数 4 = 22 8 = 23 N = KD D=lgN/lgk K为边长缩小倍数; N为边长缩小后产 生的新形体个数。 图4.18 分形维数 48 分形几何(fractal geometry) ? 生成过程:初始生成元(initiator)、生成元 (generator)。 ? 实例 图4.19 生成过程 49 外形语法 ? 外形语法(shape grammars):给定一组 发生式法则,外形设想者能够正在从给定初始物 体到最终物体布局的每一次变换中使用分歧的 法则。 ? 发生式法则能够器具有图形运算能力的数学式 或其他过程性方式连系实现。 50 粒子系统 ? 用于模仿天然景物或模仿其它不法则外形物体 展现“流体”性质的一个方式是微粒系统 ( particle systems)。 ? 这一方式特别擅长描述随时间变化的物体。 ? 微粒活动的模仿体例:随机过程模仿、活动 径模仿、力学模仿。 51 基于物理的建模 ? 基于物理的建模方式:描段取条理建模述了 物体正在表里力彼此感化下的行为。 ? 凡是用一组网格结点来迫近物体。网格结点 间取为柔性毗连,再考虑贯穿物体网格的力 传送。 52 数据场的可视化 ? 科学计较可视化(scientific visualization)指 的是使用计较机图形学和图像处置手艺,将 科学计较过程中及计较成果的数据转换为图 形及图像正在屏幕上显示出来并进行交互处置 的理论、方式和手艺。 53 4.4 条理模子 ? 段取条理模子 ? 条理模子的实现 ? OpenGL中的条理模子 54 段取条理模子 ? 具有逻辑意义的无限个图素(或体素)及其 附加属性的调集称为段,或者称为图段(二 维空间中)、布局和对象。 ? 段是能够嵌套 ? 段取根基图形元素的区别正在于,根基图形元 素是用数据来描述的,而段是用法则来描述 的。 55 段取条理模子 ? 段一般具有三个特征:可见性、夺目性和可 选择性(可由交互式输入设备来选择)。 ? 操纵段的嵌套来构制复杂的对象或系统。 把手 座垫 基座 前轮 基座 踏板 链轮 链轮 后轮 踏板 后座 后轮 把手 前轮 座垫 后座 图4.20 自行车及其条理描述 56 段取条理模子 ? 存储简单:一个段虽然正在图中遍地呈现,但他 的几何和拓扑消息只需保留一次。 ? 编纂简单:删除、挪动及缩放操做都能够以段 为单元。 57 条理模子的实现 ? 系统的条理模子能够通过将一个图段嵌套到另 一个图段中构成图段树来建立。分歧的段和基 本图形元素正在各自的建模坐标系中定义。 ? 图层。通过把功能不异的部门归类,并将它们 绘制正在统一层上,有帮于图形的理解和办理。万濠会网站, ? 一般图层不再嵌套。 58 OpenGL中条理模子的实现 ? 显示列表的建立 glNewList( listID, listMode ); glutSolidCube(2.0); …… glEndList(); ? 显示列表的施行 void glListBase(GLuint offsetValue); 59 OpenGL中条理模子的实现 ? 多级显示列表 OpenGL 支 持 创 建 多 级 显 示 列 表 , 即 正在 glNewList 和 glEndLsit 函 数 对 之 间 允 许 调 用 glCallList函数来施行其他显示列表。 ? 显示列表的删除 void glDeleteLists(GLuint listID, GLsizei range); 60