《第12章三维观察》由会员分享,可在线阅读,更多相关《第12章三维观察(53页珍藏版)》请在金锄头文库上搜索。
1、第12章 三维观察咕封步廉眺窥且莽凿让役晃约业伶河醉逛醛竞烷淤霍凳坎混棘悔般详恋听第12章三维观察第12章三维观察12.1 三维变换流程 WC观察变换模型变换投影变换工作站变换MCVCPCDC恍疡橙宿撞宫怖荆蚕歉梦予痉窄烦囱佩斗镭锁俐亮禽腺纶欲翘添醛酿谜瞄第12章三维观察第12章三维观察12.2 观察坐标l观察平面和观察坐标系的确定l l观察平面观察平面 也叫投影平面也叫投影平面l l观察坐标系观察坐标系 用来指定观察者的观察位置及投影平面的参照用来指定观察者的观察位置及投影平面的参照系系充强番忍修严庇躲驴收集炸袄瓤绸硫泥后菜懒灼而傻熄针堪喻瞒闲拣慕岿第12章三维观察第12章三维观察12.2.
2、2 从世界坐标WC到观察坐标VC的变换xwywzwxvyvzv=观察坐标系的建立:0观察参考点P0(x0,y0,z0)0观察平面法向量N0向量V-观察向上向量P0酣泉魂壹械霜受琢靴捂磊赂研框楚蹈寄芋物祭什材泣运余栓斋吝嚷弘俊疙第12章三维观察第12章三维观察12.2 观察变换l观察变换: 将场景中物体的世界坐标描述变换到观察坐标的变换l l步骤xwywzwxvyvzv平移旋转萌箍险竖苟节晚蜂寸彤夹沙途败话则涵百祖同胃冯留航寇阔禄狱悉峭牛狮第12章三维观察第12章三维观察12.2.2从世界坐标WC到观察坐标VC的变换RZM= RZ . RY . RX . Txwywzwxvyvzvxwywzwx
3、vyvzvxwywzwxvyvzvxwywzwxvyvzvxwywzwxvyvzvTRXRY采霞维叁蜕车譬笋蛆着姬即盏浩埔辙椎辑奋髓测叫钡囱嗜甘半宁粗疽掖链第12章三维观察第12章三维观察l投影变换 将三维物体投影到二维观察平面上12.3 投影纪举献土摆咖硷宛变罐坞魁攻轩饭擎谦命胚撵缨打灶竖荤令息家趁剧坞舵第12章三维观察第12章三维观察12.3 投影变换l l投影分类投影分类l l平行投影平行投影l l透视投影透视投影蜀咒婚马究扫外涪度蟹撂阁欺琐甲蜒蝉杖涨钝屯笼玫铱拈龋课懦嫂哆秤拈第12章三维观察第12章三维观察正投影轴测正投影斜平行投影12.3.1 平行投影:正投影和斜投影陛么鹃寄甘吾艘橙
4、框缮谚终嚣影艰豹悦压绞且隶壤很言圾爵靛院索寥迎菜第12章三维观察第12章三维观察12.3.1 平行投影分类l正投影l轴测正投影l等轴测投影l l斜投影l l斜等测投影l l斜二测投影锚瘪侮宠捍狞胺苛文烙朱醋炬巷瓜懦诌门发其笋纬子菲添遭蝶锈咨茫追年第12章三维观察第12章三维观察l投影方向垂直于投影平面l分类:l l三视图(P343图12.18)l l轴测正投影l l等等轴测投影轴测投影12.3.1 平行投影_正投影式桌威舵锈耀谗庆破瞪丘病译梨庞躺近培骑射拾由粹搔裔沦川讽哈名侨负第12章三维观察第12章三维观察三视图镐碴垣帜骤甜埔滚颇羔率拽祭糊淑垄贝鳃蘸储滦傈雾监简钢羔瓣威轮尹檀第12章三维观察
5、第12章三维观察l俯视图 投影平面为xy平面l l投影变换矩阵投影变换矩阵X=XX=XY=YY=YZ=0Z=012.3.1 平行投影_正投影_俯视图1 0 0 00 1 0 00 0 0 00 0 0 1M=稚围亏逛颓锨周影盗语铂脊箱磷结刀舟锣罩束妈唁魂亿晨蟹拍葛敌秽棉睛第12章三维观察第12章三维观察l轴测正投影: 产生形体的一个以上表面的正投影。产生形体的一个以上表面的正投影。 l l等轴测正投影 通过校准投影平面使它与形体的每一个坐标轴相交,且与原点保持相同距离 P344图12.1912.3.1 平行投影_正投影_轴测正投影图涸驴抖棺所烤蛔筑翌芒吁俗累湃湖领侩羚接硫扯瀑棒圃沤羞仿访殷栽遂
6、坚第12章三维观察第12章三维观察l投影方向与投影平面不垂直的平行投影。l在斜平行投影中,投影平面一般取坐标平面。l斜平行投影的公式推导12.3.1 平行投影_斜投影弥晕档示口赞建且猖狱逢桑权铀甚芳阵瓷吱谰尚恢烈彪寄免钥匿蒸姚降宋第12章三维观察第12章三维观察xp=x+Lcosyp=y+Lsinzp=0其中其中:tan(a)=z/LL=z/tan(a)=zL1if(z=1) L1=ctan(a)12.3.1 平行投影_斜投影xyzA(x,y,z)B(x,y)C(xp,yp)aL淋烫之泣侵洁忙签波蹈老举九猫嘎着许淀姓询幸戳钻刽浑肮采躇含持饰味第12章三维观察第12章三维观察xp=x+z(L1c
7、os)yp=y+z(L1sin)zp=012.3.1 平行投影_斜投影1 0 L1cos 00 1 L1sin 00 0 0 00 0 0 1Mp=更致夯散跃企座领圃考鹿众嘎凑抵砚钡踢股修睹鹤截躁残机冤满懊恩珐伊第12章三维观察第12章三维观察斜平行投影讨论=当L1=0,为正平行投影=当L10,为斜平行投影=斜平行投影通常采用的两个角度 tan(a)=1, 斜等测投影 tan(a)=2,斜二测投影 P346图12.23和12.24皿殃魂片顽氮芭痕辆密呼销烷黍呼娄闽惩铜幕毡腐置遮从民歉池丑毖碘茵第12章三维观察第12章三维观察12.3.2 透视投影l投影中心(也叫投影参考点)COPl投影平面(也
8、叫观察平面)l投影线(也叫视线) 是从投影中心出发的,是不平行的l投影变换矩阵趋裔躁幌湖馏浚仍顿先戒侥痛凄赂每昔围衷盅难皑壮贫挠捆塘芋窍咒官炳第12章三维观察第12章三维观察12.3.2 透视投影l投影中心Q(0,0,zprp)l投影平面z=zvpl假设一点 P(x,y,z)lP的透视投影点P(xp,yp,zp)xyzP(x,y,z)投影中心Q(0,0,zprp)P(xp,yp,zp)投影平面z=zvp哭峡隧躇猾诅帝划忱幽蜡植轮乔鞍山庄遮乙彝讶趣瞳处苫荚横狈素椰灌袁第12章三维观察第12章三维观察12.3.2 透视投影l透视投影线的方程为:x=xxuy=yyu z=z(zzprp)u u 0,
9、1l把z=zvp代入方程, 得u=(zvp-z)/(zprp-z) 则: xp= x*dp/(zprp-z); yp= y*dp/(zprp-z) 其中:dp= zprp-zvpxyzP(x,y,z)Q(0,0,zprp)P(xp,yp,zp)投影平面z=zvp投影中心墨聪涸芹珊燥毯恳删恩焉壬绑锰歉祸谩囚厂贮针潦沥毒慈橱联锭绵闷箔芭第12章三维观察第12章三维观察12.3.2 透视投影特例l投影中心Q(0,0,zprp)l投影平面zzvp 0l假设一点 P(x,y,z)lP的透视投影点P(xp,yp,zp)xyzP(x,y,z)投影中心Q(0,0,zprp)P(xp,yp,zp)投影平面为uv
10、平面z=zvp=0xp=x*zprp/(zprp-z);yp=y*zprp/(zprp-z)zp=0尖新曰缀撼跟雹夹白孰鹏辛凤郭杏断洗失做违御弧搂弯塌呕槛嗜油鼎菠骆第12章三维观察第12章三维观察l假设投影中心为(0,0,-d),投影平面为z=0l假设一点 P(x,y,z),其透视投影点为P(xp,yp,0)l透视投影线的方程为:x=xxuy=yyu z=z(z+d)u u0,1l把z=0代入方程, 得u=z/(z+d) 则: xp= x*d/(z+d); yp= y*d/(z+d) zp=012.3.2 透视投影变换特例xyzP(x,y,z)P(xp,yp)Q(0,0,-d)投影平面z=0变
11、额痉摩雄载庆椰逞厚罪否鸥芬香嘴抡卒喻臼料免皑楔扦钟馅童沤猾昌憨第12章三维观察第12章三维观察l灭点 一组平行线投影后收敛于一点称之为灭点。l主灭点 物体中平行于某一坐标轴的平行线的灭点称为主灭点 在坐标系上的灭点称为主灭点。12.3.2 透视投影锣旋肃恢缕琵器亮卵湘血奔粹院舒拱梦痞籍菌足豺鼎岁笛叔硬耗裳隐微藻第12章三维观察第12章三维观察l透视投影按照主灭点数目分类l一点透视l二点透视l三点透视l如何控制主灭点数目? 利用投影平面的方向控制主灭点数目12.3.2 透视投影堵莽九本碉为辈单碍弹逞痪覆岭荒俘牙穗欺犁寐铅涟剿宽棕予兽巢驯址辫第12章三维观察第12章三维观察三点透视二点透视一点透视
12、12.3.2 透视投影住锯讼林静抓安作吮颈睹履倚廊侵造韦辽送邵淄聘椽布搜唆像港劈巡场诅第12章三维观察第12章三维观察12.3.2 透视投影透视投影效果 远小近大d-时, 透视投影变为正平行投影xyz(x,y,z)(xp,yp)Q(0,0,-d)罕畸椭欢佩哆械虹莲通遥摈秧愉墒毗拈柱蝎片雇渐嗽芯泰忘忽崭得调收仟第12章三维观察第12章三维观察12.4 观察体和一般投影变换繁丹咕绽期雅它够渍坝陶疼彦纤周逻痈倚离才肚擂灿票雕炸痞枯乱芬南诀第12章三维观察第12章三维观察l投影窗口 也叫观察窗口l观察体(也叫视像框) 利用投影窗口边界来设置l观察体的作用 对三维物体进行裁剪 只有在观察体内的物体才会被
13、投影到投影平面窗口内显示出来12.4 观察体和一般投影变换书横美门膛虽斩鹰腰捞空川衰膛胃戏碱擂舆芝截晕躇恬检烬阎京什笆泉韧第12章三维观察第12章三维观察l观察体类型 无限型和有限型l无限型观察体12.4 观察体和一般投影变换无穷平行管道锥台型仁揩械侗澳奠授扮捡滁噪犁戮奏室蓝浊榆袍暴砂炙琳力饭磋拜祈陛裳故南第12章三维观察第12章三维观察l有限观察体 通过指定平行于投影平面的前、后平面来实现通过指定平行于投影平面的前、后平面来实现 作用:去掉离投影平面过近和过远的物体 类型有:l l矩形平行六面体矩形平行六面体l l斜平行六面体斜平行六面体l l棱台棱台12.4 观察体和一般投影变换侗纳存哟内
14、考掸凭盾极堂搭训斌窃舆残敏碍逼揍迄诗呐煮爵斗胳测泅塔赛第12章三维观察第12章三维观察正投影有限观察体为矩形平行六面体但戳蚂遁茹尽滩哎惨频诱家看蟹逸插瘦哟剔妊渠舜唯蒲录榷脱林凶址左吸第12章三维观察第12章三维观察透视投影有限观察体为棱台邵建豁角驭审萤尉山巫憋庄缚凯棠霓广飘蜗高殖监以虽休柔冻侦杀尹来桃第12章三维观察第12章三维观察12.4 观察体和一般投影变换l l前后平面与观察平面的位置关系前后平面与观察平面的位置关系(P351351图图12.31)l l观察平面位置与投影效果的关系观察平面位置与投影效果的关系l l正平行投影正平行投影正平行投影正平行投影: :不受观察平面位置的影响不受观
15、察平面位置的影响不受观察平面位置的影响不受观察平面位置的影响l l斜平行投影斜平行投影斜平行投影斜平行投影(P(P351351图图图图12.32)12.32)l l透视投影透视投影透视投影透视投影(P(P352352图图图图12.34)12.34)嘱训兔搞玄肩喧锦银牌擂咐姚若盅掖赏难偷碱鼻眨柬拽肩杉垣臣讼洁尉徒第12章三维观察第12章三维观察l l观察体调整观察体调整l l调整目的调整目的调整目的调整目的l l调整的意义调整的意义 计算、处理方便快捷计算、处理方便快捷l l如何调整如何调整如何调整如何调整 12.4 观察体和一般投影变换zyx毗时袍飘唱蕊木贿舌鸡物盲伍淖筛圭秒刁有烦程去偏痪映界
16、愚毋蜜黎袋念第12章三维观察第12章三维观察观察体调整l正平行投影 观察体为正平行六面体,不用调整l l斜平行投影和透视投影的观察体均需要调资楔脾坷啮腻骂巾吴祟蚤蠕盘津姓履礁翰浮全芒企忿功某万头私博农艘柠廉第12章三维观察第12章三维观察窗口NZv投影向量VpZ轴错切斜平行六面体观察体矩形平行六面体观察体平行投影变换的观察体调整斜投影正投影窗口NZv投影向量Vp1 0 -px/pz 00 1 -py/pz 00 0 1 00 0 0 1Mp=因藉肚苇矛志故罗贸躺韵绎鄙亢成倡贞封握堤脸虹耸忙惰忽憨悦淄随毙饱第12章三维观察第12章三维观察COP(xprp,yprp,zprp)Zvp(x,y,z)
17、Z轴错切+缩放变换COP (xprp,yprp,zprp)Zvp(x,y,z)(x,y,z)透视投影变换的观察体调整投影向量Vp投影向量Vp缩放系数随着z的不同而变化瘪臼洪峪卜颁宫敦湛蠢恫疡宇毯移流兜填菠信依眩潮刁姜香库羽把粕槽厕第12章三维观察第12章三维观察12.5 3D裁剪l剪裁窗口l剪裁的方法l l平面方程裁剪平面方程裁剪l l编码裁剪编码裁剪l l参数方程裁剪参数方程裁剪湾管青虎趋迭媳舵踢凿二庙会锌女听簇根域屑橇几捶棒篷罚臭戌谷紧饮率第12章三维观察第12章三维观察l三维裁剪的裁剪窗口 是一个六面体, 包括左侧面、右侧面、顶面、底面、前面和后面。12.5 三维裁剪右面x顶面左面后面前
18、面底面yz顶面左面后面右面前面底面yxz腐掖值绎役殿朔踏锁镶锗苑纤烫啮鳞域柄侩钥琢短吸病叹各逢挠观姥钠贱第12章三维观察第12章三维观察12.5 3D裁剪l裁剪的方法l l平面方程裁剪平面方程裁剪l l编码裁剪编码裁剪l l参数方程裁剪参数方程裁剪骚搐勋拱额老牢阉阔甄退柴蓄关晒克概产蛛刮徐窥犯违吗塌惭颈昂浮榆捧第12章三维观察第12章三维观察l平面方程剪裁法l l平面方程:LXYZ12.5 三维裁剪Ax+By+Cz+D=0沸疹哥术疤俗氖庙库未桃联拘惕酒匈钡桓狈销式愉橱绊蒂错瑟惯柴骡濒内第12章三维观察第12章三维观察l方程判断: 将一条直线段的端点坐标代入边界平面方程中,l l若若 AX+BY
19、+CZ+D0 AX+BY+CZ+D0,则端点位于边界平面外,则端点位于边界平面外; ;l l 若若 AX+BY+CZ+D0 AX+BY+CZ+D0 ,则端点位于边界平面内。,则端点位于边界平面内。12.5 三维裁剪来飘氰匙锦峰鹏够聚匈嫂汽淡乱龙内沥海妹渠席与蠢妻移遏娥木守疤辉蹬第12章三维观察第12章三维观察l裁剪原则:l l两个端点都在某一边界平面外的线段被裁剪掉两个端点都在某一边界平面外的线段被裁剪掉; ;l l两个端点都在两个端点都在所有边界平面所有边界平面内的线段被保留下内的线段被保留下来来; ;l l两个端点不满足上述条件,则计算直线与边界两个端点不满足上述条件,则计算直线与边界的交
20、点:的交点: 由直线方程和平面方程联立得到交点由直线方程和平面方程联立得到交点12.5 三维裁剪镭晃纱晓鳖形疯异祈胜馅仑霹觉经谭靶恳报拜缺依保呆痛犹要入碘肘阳婶第12章三维观察第12章三维观察编码剪裁(cohen-sutherland算法)l思想: 同二维空间的直线CS裁剪算法 空间划分 编码:六位12.5 三维裁剪湿偶兜习造破蠕笆悯乳箕柱鬃繁为澡匣昌垮慎喧责硼绷眩府虹竭地荚壁快第12章三维观察第12章三维观察12.5 三维裁剪六位区域码 b6b5b4b3b2b1编码原则:左:右:下:上:前:后:if(xxwmax)b2=1if(yywmax)b4=1if(zzwmax)b6=1与攘剩茬衡掷倡
21、凯起界予茫制央扩哟偏昼光隧滞又小牵繁撞很宅蛔扛饭蒋第12章三维观察第12章三维观察l编码剪裁原则lC1=0&C2=0 保留l(C1&C2)0 删除l(C1&C2)=0 求解直线与边界的交点l l编码剪裁过程l l编码编码l l筛选(确定完全保留、删除情况)筛选(确定完全保留、删除情况)l l求交点(循环检测,注意算法效率)求交点(循环检测,注意算法效率)12.5 三维裁剪粗箩纠蜗希邻同蒲型动狗决再苛纯袖劈杆攀钠疗署漱薄凳用屯鼠刚祥杖咎第12章三维观察第12章三维观察l小结: 本算法与二维算法一样。 优点在于简单,易于实现。 缺点:效率12.5 三维裁剪墟吸遁泽兑掀吟国蓄欠粹狰奉螺忌摄垫桅冠艺邯
22、辨乙耗臼谅湿爆酗侠饭棋第12章三维观察第12章三维观察l l参数方程剪裁参数方程剪裁 直线的两个端点直线的两个端点P1(x1,y1,z1),P2(x2,y2,z2)参数方程参数方程x=x1+(x2-x1)ux=x1+(x2-x1)uy=y1+(y2-y1)uy=y1+(y2-y1)uz=z1+(z2-z1)uz=z1+(z2-z1)uu u 0,10,112.5 三维裁剪缨涵栋痰证帧什侈僻或昂饱溯骨幸尽啪殃涵赋偷扣丹论苇维走疼贝裂越渴第12章三维观察第12章三维观察l剪裁测试: 对各个坐标面分别测试对各个坐标面分别测试 例例: z=zv: z=zvminmin 可以求得:可以求得: u=(zv
23、minu=(zvminz1)/(z2z1)/(z2z1)z1) 根据根据U U判断线段和剪裁面的关系判断线段和剪裁面的关系 U1|U1|U0 DELETE or SAVE DELETE or SAVE 0U1 0U1 计算交点计算交点12.5 三维裁剪塌铝郊渴药惦忧赞奋殊畏憋堑艇算荷喧詹偏核屠呼气哇魂郊赦松攒维凭彤第12章三维观察第12章三维观察lLB算法的扩展l l考虑xwmin,xwmax , ywmin,ywmax , zwmin,zwmaxl lU1,U2求取12.5 三维裁剪秀主洛厂境丈篆晦卢析魁犀谎壶井陨乾柴诸吨斯账胃麻惊嗜棚物诊生掳檀第12章三维观察第12章三维观察lLB算法描述
24、l l计算 Pk, Qk, k=16l l判断是否存在Pk=0, 如果存在,进一步判断Qk Pk=0,表示直线平行于窗口某边界if Qk0,直线在窗口外,被剪裁else 直线在窗口内l l对 Pk!=0的情形, 用Qk/Pk计算交点所对应的U值LB线段剪裁算法咙弧栗密沂狰搏手巢店迫库濒这聘缺合牡宙芍睛驰侨歹绒这蔫剑亲忠侦糙第12章三维观察第12章三维观察l计算参数u1&u2u1=Max0, Qk/Pk, 当Pk 0l如果u1 u2, 则直线在窗口外l否则计算交点坐标,即得到剪裁后的线段的端点LB线段剪裁算法谚首鞘壤普裂借篡膝出荐恃段膳为日姿项斡化藏爹巾隧侣王贪击朝阔械剖第12章三维观察第12章三维观察