当前位置:文档之家› 透视式、纽曼投影式与费歇尔投影式的相互转化方法

透视式、纽曼投影式与费歇尔投影式的相互转化方法

第六章对映异构习题答案

第六章对映异构 1. 说明下列各名词的意义: ⑴旋光性:⑵比旋光度:⑶对应异构体:⑷非对应异构体:⑸外消旋体:⑹内消旋体: 答案: (1)能使偏光振动平面的性质,称为物质的旋光性。(2)通常规定1mol含1 g旋光性物质的溶液,放在1 dm (10cm)长的成液管中测得的旋光度,称为该物质的比旋光度。 (3)构造式相同的两个分子由于原子在空间的排列不同,彼此互为镜象,不能重合的分子,互称对应异构体。 (4)(答案)构造式相同,构型不同,但不是实物与镜象关系的化合物互称非对映体。 (5)一对对映体右旋体和左旋体的等量混合物叫外消旋体。 (6)分子内,含有构造相同的手性碳原子,但存在对称面的分子,称为内消旋体,用meso表示。 2. 下列化合物中有无手性C(用*表示手性C) (1)(2)(3)(4) 答案: (1)(2)无手性碳原子 (3)(4)

3、分子式为C3H6DCl所有构造异构体的结构式,在这些化合物中那些具有手性?用投影式表示它们的对应异构体。 答案: 解:⑴ (手性) ⑵(无手性) ⑶(手性) ⑷(无手性) ⑸ 4. ⑴丙烷氯化已分离出二氯化合物C3H6Cl2的四种构造异构体,写出它们的构造式:⑵从各个二氯化物进一步氯化后,可得的三氯化物(C3H5Cl3)的数目已由气相色谱法确定。从A得出一个三氯化物,B给出两个, C和D各给出三个,试推出A,B的结构。⑶通过另一合成方法得到有旋光性的化合物C,那么C的构造式是什么?D的构造式是怎样的?⑷有旋光的C氯化时,所得到的三氯丙烷化合物中有一个E是有旋光性的,另两个无旋光性,它们的构造式怎样? 答案: (1)

立方体纹理映射

1问题描述与算法思想 1.1纹理映射简介 纹理映射(Texture Mapping)是将纹理空间中的纹理像素映射到屏幕空间中的像素的过程。在三维图形中,纹理映射(Texture Mapping)的方法运用得最广,尤其描述具有真实感的物体。比如绘制一面砖墙,就可以使用一幅具有真实感的图像或者照片作为纹理贴到一个矩形上,这样,一面逼真的砖墙就画好了。如果不用纹理映射的方法,这墙上的每一块砖都要作为一个独立的多边形来绘制。另外,纹理映射能够保证在变换多边形时,多边形上的纹理也会随之变化。例如,用透视投影模式观察墙面时,离视点远的墙壁的砖块的尺寸就会缩小,而离视点近的就会大些,这些是符合视觉规律的。此外,纹理映射也被用在其他一些领域。如飞行仿真中常把一大片植被的图像映射到一些大多边形上用以表示地面,或者用大理石、木材等自然物质的图像作为纹理映射到多边形上表示相应的物体。纹理对象通过一个单独的数字来标识。这允许硬件能够在内存中保存多个纹理,而不是每次使用的时候再加载它们,从而减少了运算量,提高了速度。纹理映射是真实感图像制作的一个重要部分,运用它可以方便的制作出极具真实感的图形而不必花过多时间来考虑物体的表面细节。然而纹理加载的过程可能会影响程序运行速度,当纹理图像非常大时,这种情况尤为明显。如何妥善的管理纹理,减少不必要的开销,是系统优化时必须考虑的一个问题。还好,相关软件提供了纹理对象对象管理技术来解决上述问题。与显示列表一样,纹理对象通过一个单独的数字来标识。 立方体映射(cube-map)纹理是一种特殊类型的纹理,用于环境映射,使用一组图像并把他们作为立方体的面。立方体映射的6个面用正方形并且大小相同的6个子纹理表示。要从立方体纹理中采样的时候,使用的纹理坐标是3维,并且被看做来自原点的方向。方向指向用来读取纹理的立方体映射表面的位置。立方体纹理映射主要思想是通过观察向量和表面的法向量反射来确定采样的纹理坐标。 1.2实验目的 1) 掌握位图纹理读入方法; 2)掌握立方体纹理映射算法。 1.3功能要求 1)建立三维坐标系Oxyz,远点位于屏幕客户区中心,x轴水平向右为正,y轴垂直向上为正,z轴垂直于屏幕指向观察者。 2)设置屏幕背景色为黑色。 3)读入六张构成天空盒的位图作为纹理映射到立方体的可见表面上。 4)按下鼠标左键缩小立方体,按下鼠标右键增大立方体。 5)使用键盘方向旋转纹理立方体。 6)使用动画按钮播放或停止立方体动画。 1.4算法原理(算法思想) 立方体进行纹理映射是纹理对象并不是直接绑定到着色器,而是绑定到一个

第五章 对映异构习题及答案

第五章 对映异构 习题 1、下列化合物分子中有无手性碳原子(用*表示手性碳原子)。 2、回答下面的一些说法是否确切?简要说明理由。 (1)在含有手性碳原子化合物的分子结构中都不具有任何对称因素,因此都有旋光性。 答:错误。含有手性碳原子的化合物不一定具有旋光性。例如内消旋体,含有多个手性碳原子,但旋光度为零。 (2)化合物分子中如含有任何对称因素,此化合物就不具有旋光性。 答:错误。例如,反-1,2-二氯环丙烷具有旋光性,具有一对对映异构体;它含有二重对称轴,具有对称因素。因此有无对称轴不能作为判断分子是否有手性的标准。 3、写出分子式为C 3H 6Cl 2所有构造异构体的结构式。在这些化合物中哪些具有手性?用投影式表示它们的对映异构体。 答:其中第四个化合物有手性,右图为其Fischer 投影式的对映异构体。 4、指出下列构型式是R 或S 。 R 构型 S 构型 S 构型 S 构型 5、画出下列化合物所有可能的光学异构体的构型式,标明成对的对映体和内消旋体,以R ,S 标定它们的构型。 (1) 如右图所示,Ⅰ和Ⅱ为相同物质,为内消旋体; Ⅲ和Ⅳ互为对映异构体。 * * *

(2) 如右图所示I 和II 是同一构型,为内消旋体; III 和IV 互为对映异构体。 (3) 如右图所示,I 和II 为同一构型, 为内消旋体;III 和IV 6、写出下列各化合物的费歇尔投影式。 答:如图所示: 7、画出下列化合物的构型。 答:如右图所示:

8、用费歇尔投影式画出下列各化合物的构型式。 (1)2-氯-(4S )-4-溴-(E )-2-戊烯 (2)内消旋-3,4-二硝基己烷 答:如下图所示: 9、将下列化合物的费歇尔投影式画成纽曼投影式(顺叠和反叠),并画出它们对映体的相应费歇尔式和纽曼投影式。 答: (1) 、 (2)

透视投影(Perspective Projection)变换推导

透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。 没错,主流的3D APIs如OpenGL、D3D的确把具体的透视投影细节封装起来,比如 gluPerspective(…) 就可以根据输入生成一个透视投影矩阵。而且在大多数情况下不需要了解具体的内幕算法也可以完成任务。但是你不觉得,如果想要成为一个职业的图形程序员或游戏开发者,就应该真正降伏透视投影这个家伙么?我们先从必需的基础知识着手,一步一步深入下去(这些知识在很多地方可以单独找到,但我从来没有在同一个地方全部找到,但是你现在找到了)。 我们首先介绍两个必须掌握的知识。有了它们,我们才不至于在理解透视投影变换的过程中迷失方向(这里会使用到向量几何、矩阵的部分知识,如果你对此不是很熟悉,可以参考 可以找到一组坐标(v1,v2,v3),使得 v = v1 a + v2 b + v3 c (1) 而对于一个点p,则可以找到一组坐标(p1,p2,p3),使得 p – o = p1 a + p2 b + p3 c (2) 从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点o所进行的一个位移,即一个向量——p – o(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点p: p = o + p1 a + p2 b + p3 c (3) (1)(3)是坐标系下表达一个向量和点的不同表达方式。这里可以看出,虽然都是用代数分量的形式表达向量和点,但表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点! 我们现在把(1)(3)写成矩阵的形式: 这里(a,b,c,o)是坐标基矩阵,右边的列向量分别是向量v和点p在基下的坐标。这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D点的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。 “齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR 这样,上面的(1, 4, 7)如果写成(1,4,7,0),它就是个向量;如果是(1,4,7,1),它就是个点。 下面是如何在普通坐标 (Ordinary Coordinate)和齐次坐标(Homogeneous Coordinate)之间进行转换:

深入探索3D拾取技术

深入探索3D拾取技术 在游戏中,玩家需要通过点击2D屏幕来选择3D物体,这个过程就是拾取(picking)。拾取是3D游戏必不可少的基本操作,它实现了玩家和游戏世界内对象的交互。 虽然拾取技术很基本,但它却迷惑了很多3D初学者。很多朋友都问过我关于拾取的细节问题,这让我觉得很有必要具体探讨一下该技术。其实,拾取之所以让很多开发者感到复杂,主要原因在于它跨域了流水线的多个阶段,并且是逆流水线上行。另外,它是一个2D信息扩展到3D的过程,必须对信息做相应的扩展和额外的计算才能够得到正确的结果。下面我门具体分析一下这个技术。 水流线主要阶段分析 我们来直观地看一下从相机空间到viewport的变换 相机空间中的一个顶点v,经过透视变换后进入了CVV中。这个变换矩阵实际上完成了两个工作: 1)将顶点从3D空间投影到2D的投影平面(Projection Plane)上。 2)将投影平面上的2D投影点通过线性插值变换到齐次裁剪空间CVV中。 这些变换都通过透视矩阵一次完成。我之所以把这一步分解为两步,因为这对于分析拾取很重要。 顶点进入齐次裁剪空间并经过CVV裁剪,最终进行透视除法从4D齐次形式变回成3D形式。然后经过一个线性插值(被封装在视口(viewport)变换中),变换到viewport中,多个点以三角形的形式经过光栅化后被玩家看到。最后一步的点变换可以描述为: 3)将CVV中的点通过线性插值变换到viewport中。

分析了这个变换过程之后,我们知道了从相机空间开始实际处理点位置信息的操作,就是上面的三个步骤。这样,我们可以先把顶点从viewport中先变换回投影平面上,也就是我们可以先完成(2)和(3)的逆处理。这里我们不用考虑裁剪和透视除法这些操作,因为反推的时候,处于视口中的点,已经是经过裁剪后留下的有效点了,必定处于CVV内,也必定处于projection plane内!而且从viewport逆变换到projection plane,点一直保持2D形式。 picking的开始是玩家在屏幕上点击一个位置——这实际上是在viewport中进行了点击。我们通过响应玩家的点击事件,得到在viewport中的点击位置,记为P0(Xp0,Yp0)。然后我们把p0从viewport中线性插值到CVV中,得到P1(Xp1,Yp1): 上面的线性插值(如果对线性插值公式不熟悉,请参考《深入探索透视投影变换》一文中的线性插值部分)公式在x方向上计算出了CVV中的P1,y方向的公式同理。接下来我们再把P1从CVV中变换到projection plane中,得到P2(Xp2,Yp2): y方向的计算同理。P2就是viewport中玩家点击的点在projection plane上所对应的位置。目前来看很好。我们已经获得了相机空间中的投影平面上,玩家点击的位置。但目前的点是一个2D点——它处于投影平面上。玩家需要拾取的是一个3D对象,因此我们需要将2D信息拓展到3D中。 向3D世界拓展 将2D的点信息拓展到3D空间进行picking,会使用射线(ray)进行。ray就是一端固定,另一端无限延伸的线性模型。如下图所示:

画法几何与阴影透视_在线作业_1教学内容

画法几何与阴影透视_在线作业_1

画法几何与阴影透视_在线作业_1 一、单选题 1.一般应以()的方向作为主视图的方向。 A. 从物体上面向下投影 B. 最能反映出形体特征的 C. 任意 D. 物体最简单答案B 2.在直立圆柱的水平投影圆内的一个点所标的符号为(b)时点B在圆柱体的()。 A. 下底面 B. 上底面 C. 后半个柱面 D. 前半个柱面答案A 3.要求出物体的阴影,主要是求出物体上()的影。 A. 所有面 B. 阴线 C. 所有棱线 D. 各顶点的答案B 4.在绘制工程图时通常采用的是()投影法。 A. 中心 B. 正 C. 斜 D. 水平答案B 5.在使用丁字尺绘制图线时,丁字尺的尺头应紧靠在图版的()边。 A. 下 B. 右 C. 左 D. 上答案C 6.在圆球的水平投影上有一段斜线,此线段的正面和侧面投影是()。 A. 一个点 B. 一段直线 C. 椭圆的一部分 D. 圆的一部分答案C 7.图形的对称线和中心线是用()线绘制的。 A. 粗实线 B. 点划线 C. 细实线 D. 虚线答案B 8.如果圆平面的影在正面反映圆的实形,此圆平面为()面。 A. 水平 B. 正平 C. 铅垂面 D. 正垂答案B 9.当圆柱体的轴线与侧面垂直,它的()投影是圆。 A. 三个投影 B. W C. V D. H答案B 10.在()的情况下两个圆柱的相贯线为椭圆。 A. 轴线正交且直径相等 B. 轴线非正交且直径相等 C. 轴线正交且直径不相等 D. 轴线非正交且直径不相等答案A

11.在图样上标注圆弧尺寸时起止符号用()。 A. 圆点 B. 45°斜线 C. 箭头 D. ×答案C 12.平面图形为水平面时,它的()面投影反映平面图形的实形。 A. 以上全不对 B. V C. W D. H答案D 13.在图样中比例是指图形与实物相应要素的()之比。 A. 体积之比 B. 大小之比 C. 线性之比 D. 面积之比答案C 14.侧垂线落在起伏不平的铅垂面上的影,它的影线的()投影的形状和承影面的水平截交线成为倒影。 A. H B. 所有 C. W D. V 答案D 15.透视投影是()投影。 A. 正 B. 平行 C. 斜 D. 中心答案D 16.水平线的()投影反映线段的实长。 A. 以上全不对 B. 水平 C. 正面 D. 侧面答案B 17.用正垂面截切圆锥,截交线为椭圆时,椭圆短轴的正面投影在()。 A. 截交线的端点 B. 任意位置 C. 截交线的中点 D. 轴线与截交线的交点答案C 18.圆柱体的截交线有()种。 A. 1 B. 2 C. 3 D. 4 答案C 19.图中所示的长方体与半球相贯,相贯线是由四段()组成的空间曲线。 A. 双曲线 B. 抛物线 C. 折线 D. 圆弧线答案D 20.用正垂面截切圆柱时,截平面与圆柱的轴线成()度角时,它的侧面投影是圆。 A. 45 B. 30 C. 60 D. 90答案A

透视投影详解

透视投影 透视投影是用中心投影法将形体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图。它具消失感、距离感、相同大小的形体呈现出有规律的变化等一系列的透视特性,能逼真地反映形体的空间形象。透视投影也称为透视图,简称透视。在建筑设计过程中,透视图常用来表达设计对象的外貌,帮助设计构思,研究和比较建筑物的空间造型和立面处理,是建筑设计中重要的辅助图样。 透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点。它的视景体类似于一个顶部和底部都被切除掉的棱椎,也就是棱台。这个投影通常用于动画、视觉仿真以及其它许多具有真实性反映的方面。 在平行投影中,图形沿平行线变换到投影面上;对透视投影,图形沿收敛于某一点的直线变换到投影面上,此点称为投影中心,相当于观察点,也称为视点。平行投影和透视投影区别在于透视投影的投影中心到投影面之间的距离是有限的,而平行投影的投影中心到投影面之间的距离是无限的。当投影中心在无限远时,投影线互相平行,所以定义平行投影时,给出投影线的方向就可以了,而定义透视投影时,需要指定投影中心的具体位置平行投影保持物体的有关比例不变,这是三维绘图中产生比例图画的方法。物体的各个面的精确视图可以由平行投影得到。另一方面,透视投影不保持相关比例,但能够生成真实感视图。对同样大小的物体,离投影面较远的物体比离投影面较近物体的投影图象要小,产生近大远小的效果. 透视投影的原理和实现 by Goncely 摘要:透视投影是3D渲染的基本概念,也是3D程序设计的基础。掌握透视投影的原理对于深入理解其他3D渲染管线具有重要作用。本文详细介绍了透视投影的原理和算法实

透视式、纽曼投影式与费歇尔投影式的相互转化方法

构象透视式、纽曼投影式与费歇尔投影式得相互转化方法得讨论* 1 纽曼式转化成费歇尔式 1、1 手性原子对应关系得确定 根据纽曼式,画出费歇尔式得框架,并确定对应关系。纽曼式中朝向自己得手性原子与后面得手性原子分别对应于费歇尔投影式中下面得手性原子与上面得手性原子。伸开右手得拇指与食指,使拇指与食指在水平方向且指向纸面前方,即面向自己,恰好与费歇尔式得横键相对应,即食指代表左侧横键,拇指代表右侧横键,手腕代表竖键。如图1-1所示。 图1-1 纽曼式转化成费歇尔式步骤一 1、2 确定费歇尔式中手性碳原子上所连得原子或原子基团先确定费歇尔式中手性碳2 上所连得原子或原子基团。纽曼式中碳2 上连有H、Br、CH3 与碳1。由于碳1 已确定,现主要确定H、Br、CH3 在费歇尔式中得位置。根据费歇尔式得书写规则, 图1-2 纽曼式转化成费歇尔式步骤二 要将分子得主碳链直立,并使命名编号小得碳原子处在上方,如图1-1 所给结构。由此可知,甲基应放在费歇尔式中得竖键上。如图1-2 所示,即手腕代表甲基了。将手平移至纽曼式上,在纸面上逆时针或顺时针转动手腕,使拇指、食指与手腕分别与碳2上得3 个原子或原子基团重合。食指对应Br,而拇指对应H,就可以在费歇尔式中左侧横键处写Br,右侧横键处写H。如图1-3 所示。

图1-3 纽曼式转化成费歇尔式步骤三 根据费歇尔式得书写规则可知,甲基应放在竖键上。同理,可利用上述方法确定碳1 横键上得原子或原子基团。所确定得费歇尔式如图1-4所示。 图1-4 纽曼式转化成费歇尔式步骤四 2 透视式转化成费歇尔式 2、1 手性原子对应关系得确定 如图2-1 所示,透视式中朝向自己得手性原子对应于费歇尔式中下面得手性原子;透视式中后面得手性原子对应于费歇尔式中上面得手性原子。 图2-1 透视式转化成费歇尔式步骤一 2、2 费歇尔式中手性碳2 上所连原子或原子基团 得确定 同上,根据费歇尔式得书写规则可知,甲基放在竖键上,如图2-2 所示。

第六章 对映异构习题答案

第六章对映异构 1、说明下列各名词的意义: ⑴旋光性:⑵比旋光度:⑶对应异构体: ⑷非对应异构体:⑸外消旋体:⑹内消旋体: 答案: (1)旋光性:能使偏光振动平面的性质,称为物质的旋光性。(2)比旋光度:通常规定1mol含1 g旋光性物质的溶液,放在1 dm (10cm)长的成液管中测得的旋光度,称为该物质的比旋光度。 (3)对应异构体:构造式相同的两个分子由于原子在空间的排列不同,彼此互为镜象,不能重合的分子,互称对应异构体。 (4)非对应异构体:构造式相同,构型不同,但不是实物与镜象关系的化合物互称非对映体。 (5)外消旋体:一对对映体右旋体和左旋体的等量混合物叫外消旋体。 (6)内消旋体:分子内,含有构造相同的手性碳原子,但存在对称面的分子,称为内消旋体,用meso表示。 2、下列化合物中有无手性C(用*表示手性C) (1)(2)(3)(4) 答案: (1)* (2)无手性碳原子 (3)* *(4) 3、分子式为C3H6DCl所有构造异构体的结构式,在这些化合物中那些具有手性?用投影式表示它们的对应异构体。 答案: 解:分子式为C3H6DCl的化合物共有5个构造异构体,其中3个有对应异构体。 (手性):

(无手性) Cl CH 2CH 3 H D D H Cl CH 2CH 3 CH 2Cl CH 3 H D D H CH 2Cl CH 3 CH 2D CH 3 H Cl Cl H CH 2D CH 3 4、 ⑴丙烷氯化已分离出二氯化合物C 3H 6Cl 2的四种构造异构体,写出它们的构造式:⑵ 从各个二氯化物进一步氯化后,可得的三氯化物(C 3H 5C l3)的数目已由气相色谱法确定。从A 得出一个三氯化物,B 给出两个, C 和D 各给出三个,试推出A ,B 的结构。⑶通过另一合成方法得到有旋光性的化合物C ,那么C 的构造式是什么?D 的构造式是怎样的?⑷有旋光的C 氯化时,所得到的三氯丙烷化合物中有一个E 是有旋光性的,另两个无旋光性,它们的构造式怎样? 答案:(1) Cl 2CHCH 2CH 3(1) CH 3CCl 2CH 3(2) ClCH 2CHClCH 3(3) ClCH 2CH 2CH 2Cl (4) (2) 解:A 的构造式:CH 3CCl 2CH 3 B 的构造式:ClCH 2CH 2CH 2Cl (3) (4) 另两个无旋光性的为:CH 2ClCCl 2CH 3 ClCH 2ClCHCH 2 Cl 5、指出下列构型式是 R 或S 。 答案: R 型 S 型 S 型 S 型

深入探索透视投影变换

深入探索透视投影变换 -Twinsen编写 -本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教 -email: popyy@https://www.doczj.com/doc/e8514951.html, 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View Volume)中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入3D图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。 没错,主流的3D APIs如OpenGL、D3D的确把具体的透视投影细节封装起来,比如 gluPerspective(…)就可以根据输入生成一个透视投影矩阵。而且在大多数情况下不需要了解具体的内幕算法也可以完成任务。但是你不觉得,如果想要成为一个职业的图形程序员或游戏开发者,就应该真正降伏透视投影这个家伙么?我们先从必需的基础知识着手,一步一步深入下去(这些知识在很多地方可以单独找到,但我从来没有在同一个地方全部找到,但是你现在找到了 )。 我们首先介绍两个必须掌握的知识。有了它们,我们才不至于在理解透视投影变换的过程中迷失方向(这里会使用到向量几何、矩阵的部分知识,如果你对此不是很熟悉,可以参考《向量几何在游戏编程中的使用》系列文章)。 齐次坐标表示 透视投影变换是在齐次坐标下进行的,而齐次坐标本身就是一个令人迷惑的概念,这里我们先把它理解清楚。 根据《向量几何在游戏编程中的使用6》中关于基的概念。对于一个向量v以及基oabc, 可以找到一组坐标(v1,v2,v3),使得 v = v1 a + v2 b + v3 c (1)

深入探索透视投影矩阵.

-Twinsen 编写 - 本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教 -email: 透视投影是 3D 固定流水线的重要组成部分,是将相机空间中的点从视锥 体 (frustum) 变换到规则观察体 (Canonical View Volume) 中,待裁剪完毕后进行透视除法的行为。在算法中它是通过透视矩阵乘法和透视除法两步完成的。 透视投影变换是令很多刚刚进入 3D 图形领域的开发人员感到迷惑乃至神秘的一个图形技术。其中的理解困难在于步骤繁琐,对一些基础知识过分依赖,一旦对它们中的任何地方感到陌生,立刻导致理解停止不前。 没错,主流的 3D APIs 如 OpenGL 、 D3D 的确把具体的透视投影细节封装起来,比如 gluPerspective(…) 就可以根据输入生成一个透视投影矩阵。而且在大多数情况下不需要了解具体的内幕算法也可以完成任务。但是你不觉得,如果想要成为一个职业的图形程序员或游戏开发者,就应该真正降伏透视投影这个家伙么?我们先从必需的基础知识着手,一步一步深入下去(这些知识在很多地方可以单独找到,但我从来没有在同一个地方全部找到,但是你现在找到了)。 我们首先介绍两个必须掌握的知识。有了它们,我们才不至于在理解透视投影变换的过程中迷失方向(这里会使用到向量几何、矩阵的部分知识,如果你对此不是很熟悉,可以参考《向量几何在游戏编程中的使用》系列文章)。 齐次坐标表示 透视投影变换是在齐次坐标下进行的,而齐次坐标本身就是一个令人迷惑的概念,这里我们先把它理解清楚。 根据《向量几何在游戏编程中的使用 6 》中关于基的概念。对于一个向量 v 以及基 oabc ,

费歇尔投影式是1891年德国化学家费歇尔

费歇尔投影式是1891年德国化学家费歇尔(Fischer)提出用投影方法所得到的平面式。这是有机化学中常用的一种投影式。其方法是把分子和球棒模型照规定的方向投影到纸平面上。例如乳酸分子模型的投影式如图3-1所示 费歇尔投影式投影的方法是:球棒模型(Ⅰ)放置的方法是将竖键指向后,横键伸向前再进行投影。连接在球棒模型中心的碳原子在纸面上,其上下方向的原子或原子团(竖键上)是指向纸平面的后方,投影到纸面上用虚线表示。其左右方向的原子或原子团(横键上)是伸向纸平面的前方,投影到纸面上用楔形线表示。如图3-1中的(Ⅱ)式。为了书写简便常不用虚线和楔形线表示,而直接用实线表示,见图3-1的(Ⅲ)式。但我们必须清楚的知道在费歇尔投影式中原子和原子团的空间关系是竖键指向后方,横键伸向前方。一个模型可以写出多个费歇尔投影式。图3-1这种碳链竖放、按命名规则编号小的碳原子放在上方,是多种投影式中的一种。 1 纽曼式、透视式与Fischer 投影式的互换

1.1 重叠式的纽曼式、透视式与Fisher 投影式的互换 互换口诀:左中右一致。即左对左,中对中,右对右;中位:前对上,后对下(或上对上,下对下)。

1.2 交叉式的纽曼式、透视式与Fischer 投影式的互换 互换口诀:中位:上对上,下对下。两边:近位(离观察者近的位置)左右不变,远位(离观察者远的位置)左右对调。

2 楔形式与Fischer 投影式的互换 互换口诀:实线对中位,上对上,下对下;楔线对左右,左 对左,右对右。(“实线”指实线上的基团;“楔线”指虚楔线和实楔线上的基团。) 例如:

3 透视式、纽曼式与楔形式的互换 要将透视式和纽曼投影式转换成楔型式,可先按照1 中的方 法判断出透视式和纽曼投影式的R/S 构型,再按照2 中的方法将其反转换成楔型式。例如:

深入探索正交投影变换

深入探索正交投影变换 之前我们在《深入探索透视投影变换》以及《深入探索透视投影变换(续)》中研究了OpenGL、D3D以及M3G的透视投影变换的原理以及生成方法。这些方法在当前的主流图形API 中得到了普遍使用。但关于投影应用,还有一类经常使用的投影方式需要我们深入理解——正交投影,我们在本篇文章里面研究它(这里假设读者已经看过前两篇文章,并理解了绝大多数的理论,因为正交投影比透视投影的推导关系简单得多,因此我们的推导会非常得快,如果读者有任何的不解,请参考前两篇文章或者通过email联系我)。 在具体研究之前我觉得有必要把平面投影的分类简单介绍一下,目的是为了让大家有一个总体的认识,从而更好的理解这个知识体系。请看下图: 平面投影分为平行投影和透视投影两种类型,后者我们在前两篇文章中介绍了。平行投影则是具有矩形观察体的投影方式(透视投影则是视锥观察体),它不会根据物体离视点的远近缩放物体(透视投影则会)。平行投影可以分成侧投影和正交投影两种类型。这两种类型如何区分呢?我们继续看图吧: 上图中,v是投影平面,n是它的法线。p和q是平面外两点,p’和q’分别是它们在平面上的投影点。q的投影方向向量为Q = 单位化(q’-q),而p的投影方向向量为P = 单

位化(p’-p),其中Q不平行于n而P平行于n,则q的投影叫做侧投影,而p的投影叫做正交投影。正交投影是我们今天的研究对象。 实际上上面对平面投影的分类还可以继续向下细分,比如透视投影可以分为一灭点、二灭点以及三灭点透视投影。侧投影则可以继续分为散点侧投、斜二轴侧投等等。而正交投影则可以分成轴侧投影以及多视点正交投影等等。如果读者对此感兴趣,可以参考相关的图形学教程。 接下来我们研究正交投影。分别介绍OpenGL、D3D以及M3G的。我们的环境约定(左右手坐标系、行列向量乘法、CVV范围)仍然尊重相应API自己的设置。 OpenGL正交投影变换 下图是OpenGL的右手坐标系中观察空间的情形,我们看到的是正交投影的矩形观察体,原点是相机位置,n是近裁剪平面到相机平面的距离,f是远裁剪平面到相机平面的距离。p是观察体中的一个点,p’是它投影之后的点。 投影之后我们有关系: 因为是正交投影,没有统一的投影射线目标点,因此投影之后的x和y不会变,而z 则永远地变成了-n,跑到了投影平面上(我们让投影平面和近裁剪平面重合),它已经没用了,则我们用这个没用的信息保存z(为了之后片元操作的时候用),写为:

透视投影矩阵推导

在上一篇文章中我们讨论了透视投影变换的原理,分析了 OPe nGL 所使用的透视 投影矩阵的生成方法。正如我们所说,不同的图形APl 因为左右手坐标系、行向 量列向量矩阵以及变换范围等等的不同导致了矩阵的差异,可以有几十个不同的 透视投影矩阵,但它们的原理大同小异。这次我们准备讨论一下 DireCt3D (以 下简称D3D 以及J2ME 平台上的JSR184(M3G (以下简称M3G 的透视投影矩 阵,主要出于以下几个目的: (1) 我们在写图形引擎的时候需要采用不同的图形 API 实现,当前主要 是OPenGL 和D3D 虽然二者的推导极为相似,但 D3D 的自身特点导致了一些地 方仍然需要澄清。 (2) DireCtX SDK 的手册中有关于透视投影矩阵的一些说明,但并不详 细,甚至有一些错误,从而使初学者理解起来变得困难, 而这正是本文写作的目 的。 (3) M3G 是J2ME 平台上的3D 开发包,采用了 OPenG!作为底层标准进 行封装。它的透视投影矩阵使用 OPe nG 啲环境但又进行了简化,值得一提。 本文努力让读者清楚地了解D3D 与 M3G 透视投影矩阵的原理,从而能够知道它与 OPenG 啲一些差别,为构建跨 API 的图形引擎打好基础。需要指出的一点是为 了完全理解本文的内容,请读者先理解上一篇文章 《深入探索透视投影变换》的 内容,因为OPenGL 和它们的透视投影矩阵的原理非常相似,因此这里不会像上 一篇文章从基础知识讲起,而是对比它们的差异来推导变换矩阵。我们开始! OPenGL ? D3D 的基本差异 前面提到,不同API 的基本差异导致了最终变换矩阵的不同,而导致 OPenGL 和 D3D 的透视投影矩阵不同的原因有以下几个: (1) OPe nGL 默认使用右手坐标系,而 D3D 默认使用左手坐标系 OPerLGL ri^iUxandeci CoOrdinate system DmD handed coordinate SyStem

推导相机变换矩阵

推导相机变换矩阵 -潘宏 -2009.12.31 -本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教 -email: popyy@https://www.doczj.com/doc/e8514951.html, 一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单的把相机变换作为一个使用基理论的例子进行了说明,但可能仍然不够具体。这篇文章中,我会尽力阐述相机变换的整个来龙去脉。希望能够对正在学习固定流水线的朋友们有所帮助。这里我们仍然会在推导相机变换之前介绍几个理论知识,目的是为了更好的理解推导过程。我们马上开始! 什么是相机变换? 在流水线中,当物体从模型坐标通过世界矩阵变换到世界空间之后,它将通过相机变换从世界空间变换到相机空间。下图的固定流水线中,蓝色框中的部分就是这个过程。 其实,所谓的相机空间,就是以相机作为坐标原点的一个参考系,所以,从世界空间变换到相机空间,就是把物体从世界坐标系,变换到相机为原点的相机坐标系,如下图所示。

左半部分是小人在世界空间中的位置,右半部分是小人变换到相机空间后的位置。这样的一个变换可以有很多种方式来实现:欧拉相机系统、UVN系统、Two Points & A Twist等等。这里我们讨论最为广泛的UVN系统构建相机矩阵,如果读者对其他方法感兴趣,可以查找相关的资料。我们仍然讨论OpenGL的相机矩阵的推导,其他API可以类似的推导。 坐标转换公式 我们在《向量几何在游戏编程中的使用6》中提到了正交矩阵,这是在基理论基础上的一个概念(如果对基理论不是很熟悉,请参考《向量几何在游戏编程中的使用6》)。正交矩阵所有列(行)向量构成了一个标准正交基(它的列向量都是互相正交,并且长度为1),因此,可以把正交矩阵看成是对一个坐标系的描述。同时,我们知道:同一个向量,在不同的基下面的坐标是不同的。因此,可以用正交矩阵来代表坐标系(也可以看作基)从而写出在统一的参考系(全局坐标系)下同一个向量在不同基中的坐标。 上面的式子表示,参考系中向量v在基Q中的坐标是v’,在基R中的坐标是v’’(注意这里的环境下基矩阵是用列向量表示的,这样相乘之后的结果表示的是基向量的线性组合)。如下图,黑色基表示的是参考系,红色是基Q,蓝色是基R,v是参考系中的一个向量。

构象透视式纽曼投影式与费歇尔投影式的相互转化方法

构象透视式、纽曼投影式与费歇尔投影式的相互转化方法的讨论* 1 纽曼式转化成费歇尔式 1.1 手性原子对应关系的确定 根据纽曼式,画出费歇尔式的框架,并确定对应关系。纽曼式中朝向自己的手性原子和后面的手性原子分别对应于费歇尔投影式中下面的手性原子和上面的手性原子。伸开右手的拇指与食指,使拇指与食指在水平方向且指向纸面前方,即面向自己,恰好和费歇尔式的横键相对应,即食指代表左侧横键,拇指代表右侧横键,手腕代表竖键。如图1-1所示。 图1-1 纽曼式转化成费歇尔式步骤一 1.2 确定费歇尔式中手性碳原子上所连的原子或原子基团先确定费歇尔式中手性碳2 上所连的原子或原子基团。纽曼式中碳2 上连有H、Br、CH3 和碳1。由于碳1 已确定,现主要确定H、Br、CH3 在费歇尔式中的位置。根据费歇尔式的书写规则, 图1-2 纽曼式转化成费歇尔式步骤二 要将分子的主碳链直立,并使命名编号小的碳原子处在上方,如图1-1 所给结构。由此可知,甲基应放在费歇尔式中的竖键上。如图1-2 所示,即手腕代表甲基了。将手平移至纽曼式上,在纸面上逆时针或顺时针转动手腕,使拇指、食指和手腕分别与碳2上的3 个原子或原子基团重合。食指对应Br,而拇指对应H,就可以在费歇尔式中左侧横键处写Br,右侧横键处写H。如图1-3 所示。

图1-3 纽曼式转化成费歇尔式步骤三 根据费歇尔式的书写规则可知,甲基应放在竖键上。同理,可利用上述方法确定碳1 横键上的原子或原子基团。所确定的费歇尔式如图1-4所示。 图1-4 纽曼式转化成费歇尔式步骤四 2 透视式转化成费歇尔式 2.1 手性原子对应关系的确定 如图2-1 所示,透视式中朝向自己的手性原子对应于费歇尔式中下面的手性原子;透视式中后面的手性原子对应于费歇尔式中上面的手性原子。 图2-1 透视式转化成费歇尔式步骤一 2.2 费歇尔式中手性碳2 上所连原子或原子基团 的确定 同上,根据费歇尔式的书写规则可知,甲基放在竖键上,如图2-2 所示。

透视投影矩阵推导

在上一篇文章中我们讨论了透视投影变换的原理,分析了OpenGL所使用的透视投影矩阵的生成方法。正如我们所说,不同的图形API因为左右手坐标系、行向量列向量矩阵以及变换范围等等的不同导致了矩阵的差异,可以有几十个不同的透视投影矩阵,但它们的原理大同小异。这次我们准备讨论一下Direct3D(以下简称D3D)以及J2ME平台上的JSR184(M3G)(以下简称M3G)的透视投影矩阵,主要出于以下几个目的: (1) 我们在写图形引擎的时候需要采用不同的图形API实现,当前主要是OpenGL和D3D。虽然二者的推导极为相似,但D3D的自身特点导致了一些地方仍然需要澄清。 (2) DirectX SDK的手册中有关于透视投影矩阵的一些说明,但并不详细,甚至有一些错误,从而使初学者理解起来变得困难,而这正是本文写作的目的。 (3) M3G是J2ME平台上的3D开发包,采用了OpenGL作为底层标准进行封装。它的透视投影矩阵使用OpenGL的环境但又进行了简化,值得一提。 本文努力让读者清楚地了解D3D与M3G透视投影矩阵的原理,从而能够知道它与OpenGL的一些差别,为构建跨API的图形引擎打好基础。需要指出的一点是为了完全理解本文的内容,请读者先理解上一篇文章《深入探索透视投影变换》的内容,因为OpenGL和它们的透视投影矩阵的原理非常相似,因此这里不会像上一篇文章从基础知识讲起,而是对比它们的差异来推导变换矩阵。我们开始! OpenGL与D3D的基本差异 前面提到,不同API的基本差异导致了最终变换矩阵的不同,而导致OpenGL和D3D的透视投影矩阵不同的原因有以下几个: (1) OpenGL默认使用右手坐标系,而D3D 默认使用左手坐标系。

基于消失点的鲁棒逆透视变换

基于消失点的鲁棒逆透视变换 重庆大学硕士学位论文 (学术学位) 学生姓名:张代明 指导教师:房斌教授 专业:计算机应用技术 学科门类:工学 重庆大学计算机学院 二O一五年四月

Robust Inverse Perspective Mapping Based on Vanishing Point A Thesis Submitted to Chongqing University In Partial Fulfillment of the Requirement for the Master’s Degree of Engineering By Zhang Daiming Supervised by Prof. Fang Bin Specialty:Computer Application Technology College of Computer Science of Chongqing University, Chongqing, China April 2015

摘要 逆透视变换在计算机视觉和道路交通标志检测和识别方面得到了广泛的应用。逆透视变换是透视变换的逆过程,主要是结合相机的内在和外在参数,将图像从图像坐标系映射到世界坐标系,从而消除透视影响对图像检测和识别任务的干扰和误差。因此,鲁棒的逆透视变换对于透视影响的消除和获取图像信息的不变量有着非常重要的作用。本文主要研究了基于消失点的鲁棒逆透视变换及其应用,采用消失点对逆透视变换需要的部分偏转角度参数进行了自动计算,并将逆透视变换应用到导向箭头的检测和识别任务中。 首先,本文介绍了基于消失点的鲁棒逆透视变换的选题背景以及研究意义,总结了现有逆透视变换算法的国内外研究现状以及存在的难点问题。 其次,本文介绍了逆透视变换的基本概念及其数学原理,总结了逆透视变换在道路交通标线检测的广泛应用,并对常见逆透视变换方法进行了分类总结。从基于点变换的逆透视变换、基于矩阵变换的逆透视变换和基于简化相机模型推导的逆透视变换三个方面介绍了现有逆透视变换的优点和缺点。其中,本文主要介绍了基于简化相机模型推导的逆透视变换,该类逆透视变换方法计算简单,具有很高的实用价值。 再次,本文提出了一种基于消失点检测的鲁棒逆透视变换方法。消失点反映了图像的透视结构,可以采用消失点坐标对相机俯仰角和偏航角进行计算,为逆透视变换提供实时偏转角度参数,增强逆透视变换对于上下坡等非常规道路环境的鲁棒性。同时,改进了一种逆透视变换方法,加上了偏航角矫正,提高了道路平面俯视图的质量。本文首先检测出消失点坐标,然后根据消失点计算相机俯仰角和偏航角,最后通过逆透视变换得到道路平面的俯视图,消除道路平面的透视形变。 最后,本文将逆透视变换应用到导向箭头的检测和识别当中。导向箭头作为一种道路交通标线,对车辆的规范行驶有着重要的指示作用。因此,导向箭头的检测与识别可以为智能交通系统提供重要的导向信息。本文首先通过逆透视变换消除透视影响从而得到道路平面的俯视图,然后检测出导向箭头候选区域,最后对候选区域采用形状上下文进行形状特征提取,并结合基于蚁群优化的形状匹配算法来识别导向箭头。 关键词:消失点检测,逆透视变换,智能交通,导向箭头检测与识别,形状匹配

中国矿业大学地学可视化考试重点地学可视化复习资料讲解

中国矿业大学地学可视化考试重点地 学可视化复习

科学计算可视化:通过研制计算机工具、技术和系统,把实验或数值计算获得的大量抽象数据转换为人的视觉可以直接感受的计算机图形图像,从而可进行数据探索和分析,是帮助科学家理解信息的计算方法。 地学可视化:是将科学计算可视化应用于地球科学观察,对地学实验数据以及模型计算数据进行图形表达、显示和分析,以便于探索地学规律。 虚拟现实:一种基于可计算信息的沉浸式交互环境。以计算机技术为核心的由现代 高科技技术生成的逼真的视、听、触觉一体化的虚拟环境,用户借助必要的设备以自然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生亲临等同真实环境的感受和体验。 虚拟地理环境:为用户提供一个虚拟空间和世界,让用户以化身虚拟地进入该空间和世界,并“身临其境”地分析现实地理环境中的现象和过程。 数字地球:数字地球是以计算机技术、多媒体技术和大规模存储技术为基础,以宽带网络为纽带运用海量地球信息对地球进行多分辨率、多尺度、多时空和多种类的三维描述,并利用它作为工具来支持和改善人类活动和生活质量。 数字城市:指利用数字城市理论,运用地理信息系统、遥感、遥测、网络、多媒体及虚拟仿真等关键技术,深入开发与应用空间信息资源,对城市基础设施、功能机制进行自动采集、动态监测、管理和辅助决策的技术系统。 虚拟现实的特点: (1)沉浸感(Immersion)用户可以沉浸于计算机生成的虚拟环境中,所看、所听、所闻(嗅)、所触 完全与真实环境感受一样。三维、立体、多通道。 (2)交互性(Interaction )可采取现实生活中习以为常的方式来操纵虚拟环境中的物体。对于用户 的交互虚拟环境会做出的响应; (3)构想(Imag in atio n)

相关主题
文本预览
相关文档 最新文档