- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形元素拾取 2.点的拾取 对于在NDC中的一点P1(x1,y1),0.0≤x1,y1≤1.0,该点的显示领域是以该点为圆心,r为半径的一个圆形区域,r是交互系统设定的领域精度。如果: (x1一x0)2+(yl一y0)2≤r2 则P1点的显示领域包含了拾取点P0,即对点P1拾取成功。 P1 P0 图形元素拾取 3.符号集的拾取 依次判断符号集中的每个符号参考点的显示领域是否包含了拾取点,如该图素的某个符号的参考点满足点拾取的条件,则对该图素拾取成功。这里需重复调用点拾取。 符号(集) 点(集) 图形元素拾取 4.直线段的拾取 若NDC中一条直线段的端点为P1(x1,y1)、P2(x2,y2),该线段的显示域为: P1P2的直线方程为 (yl一y2)x一(xl—x2)y—x1(y1-y2)+y1(xl-x2)=0 直线B1P1的斜率 KB=-(x1-x2)/(y1-y2) 斜率为KB的直线族可表示为y=KBx+b。 第一种方法: 图形元素拾取 4.直线段的拾取 首先判断点P0 是否在直线B1P1与直线B2P2所围成的范围内; 两个步骤: 其次判断点P0 与直线P1P2的距离是否小于系统给定的阈值r。 4.直线段的拾取 第一个判断将其归结为直线在y轴上的截距的大小比较问题 解决方案: 分别将P0、P1、P2代入斜率为KB的直线族方程,得: b0=y0- KBx0; b1=y1- KBx1; b2=y2- KBx2 如果min(b1,b2)≤b0≤max(b1,b2),则P0在B1P1,B2P2所夹的区域中 图形元素拾取 4.直线段的拾取 第二个判断采用求距公式求出点到直线的距离,再与相应阈值进行比较。 解决方案: 图形元素拾取 4.直线段的拾取 第二种方法: 第一步采用最小外包矩形(Minimum Boundary Rectangle)的方法进行判断。 MBR 第二步与第一步方法相同。 图形元素拾取 图形元素拾取 5.折线与曲线的拾取 依次判断构成折线的每条直线段的显示领域是否包含拾取点,如该图素的某一条线段满足拾取条件.则对该图素拾取成功。 而曲线在显示输出时,已离散成折线集,可采用拾取折线的方法。 6.字符串(Text)的拾取 两种方法:依次判断每个字符的显示领域是否包含拾取点;判断字符串的显示领域是否包含拾取点。 图形元素拾取 7.多边形(面)的拾取 两种方法: 逐边判断法 包含性测试,三种方法 符号比较法 交点记数法 转角和法 图形元素拾取 7.多边形(面)的拾取 符号比较法 对于直线:ax+by+c=0 它把平面分为两个部分: 正半区与负半区;某点位于哪个半平面的判断方法: 令f(x,y)=ax+by+c,计算f(x,y)的值 f(x,y) 0 正半区,直线上方 =0 在直线上 0 负半区,直线下方 图形元素拾取 7.多边形(面)的拾取 符号比较法 设多边形为pi(xi,yi);则多边形各边的直线方程为: (xi+l-xi)y-(yi+1-yi)x+xiyi+1-yixi+1=0 令f(x,y)= (xi+l-xi)y-(yi+1-yi)x+xiyi+1-yixi+1 在多边形R内取一点r0(x,y)作为参考点,这是很容易做到的,只要取多边形中不相邻的两个顶点连线的中点即可;计算出此点相对于各边的符号。然后把待判定点也代入f(x,y),计算相应的符号。 图形元素拾取 7.多边形(面)的拾取 符号比较法 若它们的符号完全相同,则待判定点在多边形内;若对某一条边出现不同符号,则待判定点在多边形外;若相对于一条边结果为0,则待判定点在该条边上。 只适用于凸多边形。 图形元素拾取 7.多边形(面)的拾取 交点记数法 设待判别点为M(x0,y0),过该点引半射线,计算它与多边形的交点数z。若交点数z为奇数,则点M在多边形内;若交点数z为偶数,则点M在多边形外。这种方法适用于凸,凹甚至是有孔的多边形。不过,如果射线恰交于多边形顶点,则必须另引一条半射线,或只计算射线一侧的交点。 图形元素拾取 7.多边形(面)的拾取 交点记数法 图形元素拾取 7.多边形(面)的拾取 转角和法 约定逆时针角度为正,顺时针角度为负。判断: 的值,若为360度,则点M在多边形内;若为0,则在多边形外 点在直线上:其中一个角为180度 图形元素拾取 8. 拾取的冲突及其解决 指拾取点包含在多个图形显示领域中。 解决方案: 在图形对象生成时就对每一个对象确定其拾取优先级 采用依次对拾取图形设立标志的办法 找距离最近的对象优先拾取。 采用依次对拾取图形设立标志的
文档评论(0)