计算机图形学(徐长青、许志闻)第五章 图形运算.pptVIP

计算机图形学(徐长青、许志闻)第五章 图形运算.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 图形运算 第一节 线段的交点计算 若两线段相交,则交点的参数值,应满足: 因此,若行列式 两线段AB和CD交点的算法 我们称平面内两条线段在横坐标x处是可比较的,如果存在一条通过x的垂直线,此线与两条线段都相交。我们规定一个在x处的上面关系为:在x处,线段S1在S2的上面,记为S1xS2,如果在x处可比较,且S1与垂直线的交点位于S2与垂直线的交点的上面。 规定的次序关系对垂直的线段不适合 两线段相交的必要条件,即若两线段相交,则必然存在某个x,使它们在规定的次序关系x下是相邻的。 算法从左向右扫描,在扫描过程维持正确的线段间上述次序关系。这种次序关系只能有三种可能的变化方式: 1.遇见某条线段S的左端点,此时S应加入次序关系。 2.遇见某线段S的右端点,此时S应从次序关系中删除。 3.遇到某两条线段S1和S2 的交点,这时在次序关系中S1和S2交换位置。 算法实施需要两个基本的数据结构: 扫描线状态表和事件点进度表 扫描线状态表L中存放按所规定次序关系x排序的线段的序列。此表初始应为空,在平面扫描过程中当关系x改变时变化。 事件点指扫描进行中可能使所规定次序关系x发生变化的点,存放于事件点进度表E中,该表初始时应是排序的要求交点的各线段端点的坐标。在平面扫描过程中求出的交点,应及时地插入到事件点进度表中。 扫描线状态表应能支持以下四个操作: (1) INSERT(S,L),把线段S插入到扫描线状态表L中,注意应插入到适当位置以保持正确的次序关系。 (2) DELETE(S,L),从L中删除线段S。 (3) ABOVE(S,L),返回次序关系中S上面紧接着的线段的编号。 (4) BELOW(S,L),返回次序关系中S下面紧接着的线段的编号。 事件点进度表E应能支持以下三个操作: (1) MIN(E),取出表E中的最小元素。 (2) INSERT(x,E),把横坐标为x的一个点插入到表E中,插入要使E中事件点存放保持递增次序。 (3) MEMBER(x,E),判定横坐标为x的点是否在事件点进度表E中。 算法: 设有三条线段S1,S2,S3,它们的坐标如下 (1,1),(5,3,),(2,3),(4,1),(6,4),(8,2). 算法初始形成的事件点进度表E,可有形式 (((1,1),S1左端点),((2,3),S2左端点) ,((4,1),S2右端点),((5,3),S1右端点) ,((6,4),S3左端点),((8,2),S3右端点)) 第二节 多边形表面的交线计算 设两个要求交线的多边形表面都是凸多边形表面,分别由它们的顶点坐标逆时针方向的序列确定,即约定按顶点序列前行时内部在左侧。 根据顶点坐标求出两个多边形表面分别所在平面的方程,再根据平面方程计算交线,最后,还要确定出交线同时在两个多边形表面内部的部分 求平面方程 采用多个顶点位置坐标来计算平面方程可以减少由于不共面而引起的偏差。 设要求出通过若干顶点的平面方程Ax+By+Cz+D=0,即要定出系数A,B,C,D,可采用如下做法 平面方程Ax+By+Cz+D=0的系数A,B,C与该平面上多边形分别在x=0,y=0,z=0三个坐标平面上投影的面积成比例. 多边形在z=0平面上投影的面积S可如下求出: 式中若i=n则j=1,否则j=i+1。 类似地可计算多边形表面在x=0和y=0平面上投影的面积,从而确定A,B,然后D可通过代入平面上一点坐标数值来求出。 若给出空间若干点的坐标(x1,y1,z1),(x2,y2,z2),….(xn,yn,zn),注意这里没有要求这些点共面或围成了凸多边形,都可以求出通过或接近这些点的一个平面方程Ax+By+Cz+D=0: 两平面重合或平行,一般算没有交点 线段与平面的交点计算 代入平面方程,得: A(x1+(x2-x1)t)+B(y1+(y2-y1)t)+C(z1+(z2-zl)t)+D=0 整理得到: [A(x2-x1)+B(y2-y1)+C(z2-zl)]t=-(Ax1+By1+Cz1+D) 于是知道,若 A(x2-x1)+B(y2-y1)+C(z2-z1)=0 则所给线段在平面上或与平面平行,没有唯一确定的交点。否则,交点对应的参数t可以求出: 第三节 平面中的凸壳算法 凸壳 包含一个平面点集的最小凸区域 凸区域指要求区域内任意两点的连线仍在该区域内。

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档