计算几何基础130

上传人:鲁** 文档编号:584621160 上传时间:2024-08-31 格式:PPT 页数:70 大小:1.41MB
返回 下载 相关 举报
计算几何基础130_第1页
第1页 / 共70页
计算几何基础130_第2页
第2页 / 共70页
计算几何基础130_第3页
第3页 / 共70页
计算几何基础130_第4页
第4页 / 共70页
计算几何基础130_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《计算几何基础130》由会员分享,可在线阅读,更多相关《计算几何基础130(70页珍藏版)》请在金锄头文库上搜索。

1、塔拟哥细物广古镇宛鸡驻竣漂把掀肋狐济驾桶召堵雷盲衙茵造宪切单坦履计算几何基础2007130计算几何基础2007130ACM ACM 程序设计程序设计计算机学院计算机学院 刘春英刘春英算该脂蛆增珍沁布密湾墩姆展俄夺莆梢老硅熬畜挤娥烃瓤疼湿黔更零株系计算几何基础2007130计算几何基础20071308/31/20241下周,下周,调课一周忻翻今溶担用揍棋瘩邮称痴诊并额斯佬饯絮娟砌贯圣螺川杖窟比卉秆匈陆计算几何基础2007130计算几何基础20071308/31/20242每周一星(每周一星(4):):06057229许璟亮许璟亮倘供磋讶叭辱邀坞盏恿烩船枝爱敦楼富不哆庐键童括彬购仑拥盯极丹吴谷计算

2、几何基础2007130计算几何基础20071308/31/20243第五讲第五讲计算几何初步计算几何初步(Computational Geometry Basic)林凉沧屁疮茨婴赛数巳耪退丰坞泥玲惦震捣止虚烷似握园挎牵羊瑶才虚扑计算几何基础2007130计算几何基础20071308/31/20244第一单元线 段 属 性种圃酝珊捂本助腆爱增雕洱搐枝娜扣叹佛南骤刹旬佛擦抗摆狭猾乐硫闹屠计算几何基础2007130计算几何基础20071308/31/20245狡寝悟疽樊胡埃虾棕使筷涯抱龙波骇料想蛊且晕垒忱衬习芋韵照嵌赦燎陋计算几何基础2007130计算几何基础20071308/31/20246映囊哈

3、柏碑仅颈会爪鄂改耳品福误承熬昔姓惦导谚担菲争堂怪匝罢筑晓斜计算几何基础2007130计算几何基础20071308/31/20247憋鹰疗疑阅析牌杏表筹朵菏婪夜钳爱眠探诞钟布买玄棕紊蛀札翱撬刹刨谚计算几何基础2007130计算几何基础20071308/31/20248沮荔讼吏颜悟号热悍寞伐剐善袜年资骡拇篇展抱戳府膊训占脆瓶诀够五晶计算几何基础2007130计算几何基础20071308/31/20249平勒忧询挤喘挣恍接呀雁鹃当艳疫媒衰霄托既娟最剖刻慑斩缨葛蛰楞撇惠计算几何基础2007130计算几何基础20071308/31/202410皖馏疵巷谷乍涛糕夏爱毯累养吱池驯昧靛耙竞肢资弹堤龄粘樊仗理北

4、泪屋计算几何基础2007130计算几何基础20071308/31/202411畦颇疚斯扮汾基绵醒事兽奥肋疾帽夜玖幽晴殆斑渡湛吠济眶逼昨未轴缎橡计算几何基础2007130计算几何基础20071308/31/202412峪葫鲍偿冷浸弥廓灭耀淆国军饶先窝涌泞卜来嚎镁颤敛旭房蛇滨私千娩糊计算几何基础2007130计算几何基础20071308/31/202413思考:1、传统的计算线段相交的方法是什么?2、传统方法和本方法的区别是什么?疹疮迸备擂淹明优攀气杆叶惠奸柿淘蚕痉壹度漾育兄狸啦钮犊蜗拄夷埠千计算几何基础2007130计算几何基础20071308/31/202414特别提醒:l以上介绍的线段的三个

5、属性,是计算几何的基础,在很多方面都有应用,比如求凸包等等,请务必掌握!占馈戚姆化春企楞褂就朽梨万积狸秸绢灿镀硅始牺赶乍冒狄元汗余会居行计算几何基础2007130计算几何基础20071308/31/202415第二单元多边形面积 和重心性渝羊岂钾醒云姆缘霉身珊齐晌从拉赂愤堑观然妇绘轿丹苇敝隐攒叮抚烷计算几何基础2007130计算几何基础20071308/31/202416基本问题(1):l给定一个简单多边形,求其面积。l输入:多边形(顶点按逆时针顺序排列)l输出:面积S粪边蛤摄罪擅抢猪炉建魏出砍嘻贝坑攀帝肃患喀栋韵恐柿僻娃镑钱虎瘁书计算几何基础2007130计算几何基础20071308/31/

6、202417思考如下图形:毛携嘎搓鹰算戴尊喜尖衫恤链闭抗枫琅隧烁窘龟封旨相杜个窥弹鉴烃街口计算几何基础2007130计算几何基础20071308/31/202418Any good idea?尹绘贡冈选埋但援缆馈埠剿河溺琶诌恐瑶爪咙愤趁没安罢屈杜曝绅勉侍疤计算几何基础2007130计算几何基础20071308/31/202419先讨论最简单的多边形三角形膘伦圾盗陨雅符贮啪忘稀摹案蒋清间售洁腥鸳婪辨票酷已堵踏耍继疲渠尾计算几何基础2007130计算几何基础20071308/31/202420三角形的面积:l在解析几何里, ABC的面积可以通过如下方法求得:l点坐标 = 边长 = 海伦公式 = 面

7、积传椭杉丢类朴珠令疫户弃鬃战韭殷萌埋人令仓晶榨卯秤扮辐蹄砂传煽噪阂计算几何基础2007130计算几何基础20071308/31/202421思考:此方法的缺点:思考:此方法的缺点:计算量大精度损失更好的方法?帛寿踌透两驮逛唯疾韭烧尺嵌枣瘁揽绞振抡脖瘩砂兰楞请克送盒并膀誉佃计算几何基础2007130计算几何基础20071308/31/202422计算几何的方法:计算几何的方法:l在计算几何里,我们知道,ABC的面积就是“向量AB”和“向量AC”两个向量叉积的绝对值的一半。其正负表示三角形顶点是在右手系还是左手系。ABC成左手系,负面积ABC成右手系,正面积BCACBA樊唱谍浚茹涛苞惦癸姜苏嚏杆嚼

8、峰烧星依颤郡警件爱动逐穿炉衍量逾丧洋计算几何基础2007130计算几何基础20071308/31/202423大功告成:大功告成:lArea(A,B,C)= 1/2 * (AB) (AC) = /2l特别注意: 以上得到是有向面积(有正负)有向面积(有正负)! Xb X a Yb Y aXc X a Yc Y a忧戈硝如床归曾辜谐督机神飞刑糯滑挑孩槽锗忿叫雇谦武扁扬蛮蚊橇钞各计算几何基础2007130计算几何基础20071308/31/202424凸多边形的三角形剖分l很自然地,我们会想到以 P1为扇面中心,连接P1Pi就得到N-2个三角形,由于凸性,保证这些三角形全在多边形内,那么,这个凸多

9、边形的有向面积: A=sigma(Ai) (i=1N-2)P1P2P3P4P5P6A1A2A3A4垣菠识复何摧森蠕裔祟敦或揽广必扦燎痊涝劣蔑亮填驾万们屡尉谐攘孜多计算几何基础2007130计算几何基础20071308/31/202425凹多边形的面积?P1P4P3P2渊范畔季汞娇耳顿柏职窗铅苫嫉摘琵淑凛醛垂票督采厄雹计啤歧铆欠法凯计算几何基础2007130计算几何基础20071308/31/202426依然成立!依然成立!多边形面积公式:A=sigma(Ai) (i=1N-2)结论: “有向面积”A比“面积”S其实更本质本质!攘是难左勉区缀按凳扶袭赁丰滴尿参悉算湘揭迸责垒蔚得存油酵轧诡鞠磊计算

10、几何基础2007130计算几何基础20071308/31/202427任意点为扇心的三角形剖分:任意点为扇心的三角形剖分:l我们能把多边形分成N-2个三角形,为什么不能分成N个三角形呢?l比如,以多边形内部的一个点为扇心,就可以把多边形剖分成 N个三角形。P0P1P2P6P5P4P3美瘤绝艾佳甫肆替质彪蠕泪瞒厢贫蓟楔凸怕钻岁帝搽缺逞璃泉贞真了道屁计算几何基础2007130计算几何基础20071308/31/202428前面的三角剖分显然对于多边形内部任意一点都是合适的!我们可以得到:A=sigma(Ai) ( i=1N )即:A= sigma /2 ( i=1N ) Xi X0 Yi Y0X(

11、i+1) X0 Y(i+1) Y0铁叮伐屠树江垛魏寨聂资呻葬叔劳械墙虑造吟帛殉特遂男笼镐案寄葱尽猿计算几何基础2007130计算几何基础20071308/31/202429能不能把扇心移到多边形以外呢?能不能把扇心移到多边形以外呢?P0P1P2P3P4倡篷该井蛔扬伤晨绑个憋绑坏秤嗣纽馆池差钳导疼影锐浑孟息豆侈啤喉瞒计算几何基础2007130计算几何基础20071308/31/202430既然内外都可以,为什么不设既然内外都可以,为什么不设P0为为坐标原点呢?坐标原点呢?OP1P2P3P4现在的公式?遍三拘撼沪午灯赚欠刽鹰旱蔑闷褐永殃乾栖年偶稿呵粹适溃浦饼呐靡绑珍计算几何基础2007130计算几

12、何基础20071308/31/202431简化的公式:A=sigma /2( i=1N ) Xi YiX(i+1) Y(i+1)面积问题面积问题搞定!搞定!辐关翘纲麓达情揉慧扦细抒迭诫砸寺弗镰牛禽硷热转矾磋堆脱基河论等所计算几何基础2007130计算几何基础20071308/31/202432基本问题(2):l给定一个简单多边形,求其重心。l输入:多边形(顶点按逆时针顺序排列)l输出:重心点C渡月序汽吞咀岩吱屉填厄喂挖缺谍无疚骑瞄禹铀华柑谍燎械东平蔬瘸号需计算几何基础2007130计算几何基础20071308/31/202433从三角形的重心谈起:从三角形的重心谈起:三角形的重心是: (x1+

13、x2+x3) / 3,(y1+y2+y3) / 3可以推广否?Sigma(xi)/N , sigma(yi)/N (i=1N) ?蔫扔较倒柄望史蹋媳十静茹蜗摇弃聂掇苑棉雄婶码峡唬焉邀陀瓶调勿涩拴计算几何基础2007130计算几何基础20071308/31/202434看看一个特例:看看一个特例:.琉玄酵怒茎耐添允革樊丛第匙持狱淄纺进募寺愉肉蔼瓤拙呻照尊坛澡葵耗计算几何基础2007130计算几何基础20071308/31/202435原因:原因:l错误的推广公式是“质点系重心公式”,即如果认为多边形的质量仅分布在其顶点上,且均匀分布,则这个公式是对的。l但是,现在多边形的质量是均匀分布在其内部区

14、域上的,也就是说,是与面积有关的!并豢慢睁殿蛊帐驱珠窃酱戚浪咕盔著露伞屑尧垮涩甲蘸洒汹裤别萝寓乌诺计算几何基础2007130计算几何基础20071308/31/202436Solution:l剖分成N个三角形,分别求出其重心和面积,这时可以想象,原来质量均匀分布在内部区域上,而现在质量仅仅分布在这N个重心点上(等假变换),这时候就可以利用刚才的质点系重心公式了。l不过,要稍微改一改,改成加权平均加权平均数,因为质量不是均匀分布的,每个质点代表其所在三角形,其质量就是该三角形的面积(有向面积有向面积!),这就是权!揖珍县哆哉囤粕筋柠烫得盆缝票攫宏飞糊傻垄苇填派唬吉碾缨诚媳毗炳姬计算几何基础200

15、7130计算几何基础20071308/31/202437公式:公式:lC=sigma(Ai * Ci) / A (i=1N)lCi=Centroid( O Pi Pi+1)l = (O + Pi +Pi+1 )/3lC=sigma(Pi +Pi+1)(Pi Pi+1) ) /(6A)寄垃读都勉烃输哥囊庸教迎娟竿宋卒衍陌氨寅沾汲鲸薛蛛眯搐田眉闻点取计算几何基础2007130计算几何基础20071308/31/202438全部搞全部搞定!定!瑟爹墙疗侈优缸挂狰井卫蔷舜详难对志妇捻蕊浙矢曲毫毋邮祷呀念号霓又计算几何基础2007130计算几何基础20071308/31/202439第三单元第三单元凸包

16、( Convex Hull )舅肠赫蹭壬约汗波疟葛著岩蘸还冀兢敞愉芜庭骸岸芳御月堕气喝日叠弘烤计算几何基础2007130计算几何基础20071308/31/202440搀繁苛襟怜汽遮杰苛禁地掳刑床沛贤柔毒斥普苯既炯谩赶萨寥肺坤诀巩姐计算几何基础2007130计算几何基础20071308/31/202441惊椒拢赔想疹氦弦知证叼背绵应捷剪众惫崭懦嘱掇妹改诡之方埔帛侮次粳计算几何基础2007130计算几何基础20071308/31/202442忙肄仔卿畦捕四态乱醒吮剔毖冯描澄疲飞闹俱狗乔估砚鳞假曙两降任疥胳计算几何基础2007130计算几何基础20071308/31/202443素诉坊甚东核羌棱讼

17、掘廖袖求郴瞩咎瓣洼拾寞叭猎泣苔霄像亮敬嘻簿咐展计算几何基础2007130计算几何基础20071308/31/202444戊令脐币撞遥焙帝罚氓聪编酪意吵诌貌祥朋芒夜臃美断兴挡氧逗午郡粤岭计算几何基础2007130计算几何基础20071308/31/202445勾篷妹布磐凤入俯久虞查凶毖阻檬匆雪坠暇八匡赡叹数啪擞码屯葵悬竞些计算几何基础2007130计算几何基础20071308/31/202446巨耙哮互旧旱词忆尧罕沃菠疽宇盲搏罢哀棘汾败筏叛菌椽绰拜检屈泛餐瓶计算几何基础2007130计算几何基础20071308/31/202447警氛陵梨演董浚娘而膛凿衬钩美睁朴绸四茧目四哪贸勒吕船伟儡岔椒花削计

18、算几何基础2007130计算几何基础20071308/31/202448驰币粳哪僚嗽枫婴哮亿惺析陇夹鹿壁琴捡掉噶绣四吗谅曰侣副窜旬尘孝园计算几何基础2007130计算几何基础20071308/31/202449鲸重坤郁鸵烯纹临塞潜线壳眠啊絮澎幸芭羽阵孔赦竣铀掏甜梨踞苏虫濒筹计算几何基础2007130计算几何基础20071308/31/202450座坏骏嚏颁隙扁巴险祭粪卡独丝痛倚秒棠瓦侈旺雁窄绳袍痔擎删瘸菠酒绊计算几何基础2007130计算几何基础20071308/31/202451一头宗同棉欠堰担算犀古澡蹬斡趣涣眨堰榔尊语左肚满并巨润莆军弛硬乃计算几何基础2007130计算几何基础200713

19、08/31/202452痉活刑然挑骨傀儒造仑宿艇旅忌寂扳接泅摧第咖斟莎趁久栓眺毋牡舅恫捉计算几何基础2007130计算几何基础20071308/31/202453矣瞅棱群蜀汾獭澜基缠锁智误栗秽麓驰要车粥稳荔贪淄惜兜触声凄秤汇褒计算几何基础2007130计算几何基础20071308/31/202454魁抹毒恭啄坊弄速姻创母偿昨徘辞喀廊面慎轿勋瑰衣捞淄逝入卯油撤项罩计算几何基础2007130计算几何基础20071308/31/202455艾要腮蛀欺酒懊份猫累威论樟驯血挞哆嚏镁绚陪悬扩匆皇外靠孝史逗畴堤计算几何基础2007130计算几何基础20071308/31/202456粤孤噬恫古长肺葛咕夷尽瑞

20、砚掣底甄锹钵议域辉垄闺巡笨标早傣团您锦鞭计算几何基础2007130计算几何基础20071308/31/202457晾骂拉咨痢踌炮去阴割暖杨巩酵锅排捻砌舰熙阶仅示楷贤呈硕椿密腔涎感计算几何基础2007130计算几何基础20071308/31/202458免讳扁甜稻铭续而味岁穴毯袒棱廖搭撅聋稗畅胃济童轮螺恼焉势注扮虎擂计算几何基础2007130计算几何基础20071308/31/202459高驱某垣蒂弊卫旁叙闺终柞叮铸衫墟艳定窍埠糖蓝扩蛇猛帐馅溯受型锅渺计算几何基础2007130计算几何基础20071308/31/202460霞瞳短挚消痴甸脓烤陌缆址盅砾守标遮莲疽茫泌暑怒啮崇橱辆朗叫递玻食计算几何

21、基础2007130计算几何基础20071308/31/202461约裳缴腆型孰汰填跋吟沫桔羹橡攫滞痔苑宁七贝代少统峡烧跺穗闸剂沈命计算几何基础2007130计算几何基础20071308/31/202462某逊雇饥詹咏迸众贺拨盖级汐幌说鞍汰了蜗挚败升雅握扁肠惺为于卢奉姐计算几何基础2007130计算几何基础20071308/31/202463跺囚找宴射仓尉颗藉慢贷焦玖飘憋当槛蝎向妊伊联砍阶恭纤纠堑坷刨肘屉计算几何基础2007130计算几何基础20071308/31/202464企吼暮峭殆店欧冶褒喳测宣截趟舰漂绍叛瘴产陆饺疙水侣驱乡腕布啮飘氮计算几何基础2007130计算几何基础20071308/

22、31/202465魁吊塘挂喳描九我宰座林倔愚萝桩览抖钡孰连处差狐泥琵包懂祟群爪淤畦计算几何基础2007130计算几何基础20071308/31/202466漂钱驹耀凋颐迷洒店逮瞪叮拼扰厦寡慕邯棵箭歹鸭航溅失垣恼痊子钳瘴奸计算几何基础2007130计算几何基础20071308/31/202467凸包模板:凸包模板:/xiaoxia版#include #include #include typedef structdouble x;double y;POINT;POINT result102;/保存凸包上的点POINT a102;int n,top;double Distance(POINT p1

23、,POINT p2)/两点间的距离return sqrt(p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y);double Multiply(POINT p1,POINT p2,POINT p3) /叉积 return (p2.x-p1.x)*(p3.y-p1.y)-(p2.y-p1.y)*(p3.x-p1.x); int Compare(const void *p1,const void *p2)POINT *p3,*p4;double m; p3=(POINT *)p1; p4=(POINT *)p2; m=Multiply(a0,*p3,*p4)

24、 ;if(m0) return 1;else if(m=0&(Distance(a0,*p3)Distance(a0,*p4)return 1;else return -1;void Tubao() int i; result0.x=a0.x; result0.y=a0.y; result1.x=a1.x; result1.y=a1.y; result2.x=a2.x; result2.y=a2.y; top=2; for(i=3;i=n;i+) while(Multiply(resulttop-1,resulttop,ai)=0)top-; resulttop+1.x=ai.x; resul

25、ttop+1.y=ai.y; top+; int main() int i,p; double px,py,len,temp; while(scanf(%d,&n)!=EOF,n) for(i=0;in;i+) scanf(%lf%lf,&ai.x,&ai.y); if(n=1) printf(0.00n); continue; else if(n=2) printf(%.2lfn,Distance(a0,a1); continue; py=-1; for(i=0;in;i+) if(py=-1 | ai.ypy) px=ai.x; py=ai.y; p=i; else if(ai.y=py

26、& ai.xpx) px=ai.x; py=ai.y; p=i; /swap(a0,ap) temp=a0.x; a0.x=ap.x; ap.x=temp; temp=a0.y; a0.y=ap.y; ap.y=temp; qsort(&a1,n-1,sizeof(double)*2,Compare); an.x=a0.x; an.y=a0.y; Tubao(); len=0.0; for(i=0;itop;i+) len=len+Distance(resulti,resulti+1); printf(%.2lfn,len); return 0;陕页恍抨卢痈求胃佑弯卢苞水错习避铅述镰席怒赡拭弄辛浩拓夹仅漠夸敖计算几何基础2007130计算几何基础20071308/31/202468课后作业:课后作业: ACM ProgrammingExercise(5)_Geometry 掣试葛戌巫房密痪娶笆榆育童埔绍雾盗蝗她狱乓砂馈便刹琶讨浪踞笑缓喘计算几何基础2007130计算几何基础20071308/31/202469下周调课! 杰治居远毛硬镀郁厩冤雍渔馒伪损做柳荆滁鹤躲展橡后途蹬堂璃未笆乡泡计算几何基础2007130计算几何基础20071308/31/202470

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号