日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

转 最小凸包算法(Convex Hull)(1)-Graham扫描法 -计算几何-算法导论

發布時間:2025/3/15 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转 最小凸包算法(Convex Hull)(1)-Graham扫描法 -计算几何-算法导论 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://blog.csdn.net/suwei19870312/article/details/542281

基本問題:

平面上有n個點p1,p2, ..., pn, 要求求出一個面積最小的凸多邊形,使得這個多邊形包含所有平面上的點。

?

根據算法導論上提供的兩個方法做一些介紹:

算法1:

Graham掃描法

下面直接給出一段偽代碼,方便描述:

GRAHAM-SCAN(Q) {1. 取出所有點鐘y坐標最小的點作為初始點p02. 之后對于所有其他點,以p0為中心,點集中的所有點按關于p0的極角逆時針排序,形成p1,p2,..pn-13. push(p0,S) 4. push(p1,S)5. push(P2.S)for(i: 3->m){ px = nexttoTop(S)py = Top(S) do while (如果(py->pi向量)相對于(px->py向量)是向右走的)pop(S)px = nextotTop(S)py = Top(S)push(pi, S);}return S; }

最后S棧中保存了所有凸多邊形的頂點集合

?

下面用圖示表示一下算法的過程:

1.初始化所有的p0,p1,...pn-1

?

2.??p0,p1,p2入棧

??

3. 這時候棧頂元素是p2,次棧頂元素p1, 枚舉p3, 那么可以看出, p2->p3的向量相對于p2->p1的向量是向右走的,所以棧中彈出p2, 壓入p3

?

?4. P4入棧,由于棧頂元素是p3,次棧頂元素是p1, 那么p3->p4向量,相對于p1->p3向量是向左走的,所以壓入p4

?

?

5.由于棧頂元素是p4,次棧頂元素是p3, 那么p4->p5向量,相對于p3->p4向量是向右走的,所以彈出p4,壓入p5

//xiaoxia版 #include <stdio.h> #include <math.h> #include <stdlib.h> typedef struct {double x;double y; }POINT; POINT result[102]; //保存凸包上的點,相當于所說的棧S POINT a[102]; int n,top; double Distance(POINT p1,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) //根據p0->p1的極值和p0->p2的極值進行比較,如果極值相同則用距離長度比較 {POINT *p3,*p4;double m;p3=(POINT *)p1; p4=(POINT *)p2; m=Multiply(a[0],*p3,*p4) ;if(m<0) return 1;else if(m==0&&(Distance(a[0],*p3)<Distance(a[0],*p4)))return 1;else return -1; } //尋找凸包的過程,p0,p1,p2..的尋找過程在下面main中進行了 void Tubao() {int i;result[0].x=a[0].x;result[0].y=a[0].y;result[1].x=a[1].x;result[1].y=a[1].y;result[2].x=a[2].x;result[2].y=a[2].y;top=2;for(i=3;i<=n;i++){while(Multiply(result[top-1],result[top],a[i])<=0 && top>2)top--;result[top+1].x=a[i].x;result[top+1].y=a[i].y;top++;} } int main() {int i,p;double px,py,len,temp;while(scanf("%d",&n)!=EOF,n){for(i=0;i<n;i++)scanf("%lf%lf",&a[i].x,&a[i].y);if(n==1){printf("0.00/n");continue;}else if(n==2){printf("%.2lf/n",Distance(a[0],a[1]));continue;}//這里的目的好像是找出y坐標最小的點,之后把他定義為P0 py=-1;for(i=0;i<n;i++){if(py==-1 || a[i].y<py){px=a[i].x;py=a[i].y;p=i;}else if(a[i].y==py && a[i].x<px){px=a[i].x;py=a[i].y;p=i;}}//swap(a[0],a[p])temp=a[0].x;a[0].x=a[p].x;a[p].x=temp;temp=a[0].y;a[0].y=a[p].y;a[p].y=temp;//用叉乘來實現排序的比較 qsort(&a[1],n-1,sizeof(double)*2,Compare);a[n].x=a[0].x;a[n].y=a[0].y;//調用tubao() Tubao();len=0.0;for(i=0;i<top;i++)len=len+Distance(result[i],result[i+1]);printf("%.2lf/n",len);}return 0; }

  算法學習不斷!

?

轉載于:https://www.cnblogs.com/Jason-Damon/archive/2011/10/14/2211058.html

總結

以上是生活随笔為你收集整理的转 最小凸包算法(Convex Hull)(1)-Graham扫描法 -计算几何-算法导论的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美一区二区三区电影 | 欧美成人三级精品 | 五月婷婷俺也去 | 色妇网 | 黄色网日本 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 青青草原综合久久大伊人精品 | 国产www视频| 中文字幕欧美人妻精品一区蜜臀 | 中文字幕无线码 | 成人先锋av | 波多野结衣一区二 | 国产精品1区2区3区 在线看黄的网站 | 能直接看的av网站 | 婷婷久久精品 | 久久精品午夜福利 | 亚洲毛片视频 | 日本特级黄色录像 | 久久久精品国产免费爽爽爽 | 成人影院免费 | 波多野结衣亚洲视频 | 无码视频在线观看 | 成人国产一区 | 最新黄色在线 | 欧美激情电影一区二区 | 亚洲一区二区自偷自拍 | 91精品国产综合久久久久 | 青青网站 | 免费久久视频 | 国产不卡网 | 天天操天天操天天操天天 | 狠狠躁夜夜躁人人爽视频 | 一区二区三区视频 | 在线国产视频 | 国产视频在线观看一区二区 | 96日本xxxxxⅹxxx17 | 日本激情电影 | 婷婷亚洲综合五月天小说 | 女人的黄色片 | 亚洲在线中文字幕 | 国产高清免费在线观看 | 天堂精品在线 | 日韩视频在线观看一区 | 超碰在线公开免费 | 99re6这里只有精品 | 欧美日韩综合在线 | 成年人看的黄色 | 一区二区三区小视频 | 精精国产 | 国产精品自拍片 | 已满十八岁免费观看 | 亚洲国产精品久久AV | 国产专区av | 黄频在线观看 | 五月婷婷色综合 | 久久伊人爱 | 在线麻豆视频 | 欧美第一精品 | 欧美一级免费黄色片 | 中文字幕免 | 久久久久成人片免费观看蜜芽 | 国产精品一区二区欧美 | 久久视频一区二区三区 | 欧美性插动态图 | 深夜视频在线播放 | 成人网视频 | 国产高清一区在线观看 | 在线观看黄色动漫 | 老司机狠狠爱 | 东方av在线免费观看 | 99热精品久久 | 亚洲熟妇无码av在线播放 | 中文字幕精品无码一区二区 | 日本一级淫片色费放 | 国产伦精品一区二区三区在线观看 | 视频一区国产精品 | 久久久www免费人成人片 | 中文字幕高清在线观看 | 免费精品一区 | 亚洲在线一区二区三区 | 亚洲天堂av电影 | 97久久人澡人人添人人爽 | 国产黄色片免费在线观看 | 操视频网站| 国产欧美一区二区三区精品酒店 | 日产精品久久久久久久蜜臀 | 亚洲综合色网 | 国产稀缺精品盗摄盗拍 | 97成网| 国产精品视频一区二区三区, | 国产精品久久久久久亚洲影视 | 欧美人妖另类 | 相亲对象是问题学生在线观看 | 艳妇臀荡乳欲伦交换电影 | av高清在线免费观看 | 久久国产美女视频 | 亚洲精品中文字幕在线观看 | 越南毛茸茸的少妇 | 18被视频免费观看视频 |