国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

Ritter's求最小包圍圓

2019-11-06 07:45:53
字體:
供稿:網(wǎng)友

Ritter's算法如下:

1.從點集中隨機選出兩個點作為直徑對圓進行初始化。

2.判斷下一個點p是否在圓中,如果在則繼續(xù)本步驟,如果不在則進行步驟3。

3.使用p作為新圓的一個邊界點,另一個邊界點為距離p最遠(yuǎn)的圓上的點(舊圓心和新的點p連線方向的向量,直徑d+r),使用這兩個點作為直徑構(gòu)造新圓。

4.繼續(xù)步驟2,直到遍歷完所有點。

 

n=100;p=rand(n,2); %100個點的坐標(biāo),二維坐標(biāo)p1=p(1,:);p2=p(2,:);r=sqrt((p1(1)-p2(1))^2+(p1(2)-p2(2))^2)/2;  %兩點距離的一半是半徑cenp=(p1+p2)/2;  %圓心的坐標(biāo)for i=3:n    newp=p(i,:);        d=sqrt((cenp(1)-newp(1))^2+(cenp(2)-newp(2))^2);      if d>r        r=(r+d)/2;        cenp=cenp+(d-r)/d*(newp-cenp);    %(newp-cenp)/d是這個方向上的單位向量,這個新的圓不是最優(yōu)的,是直徑d+原先r的,新直徑就是r=(r+d)/2    end    endhold on;plot(p(:,1),p(:,2),'o');x0=cenp(1);  %迭代出來的最后的圓心坐標(biāo)y0=cenp(2);  %迭代出來的最后的圓心坐標(biāo)theta=0:0.01:2*pi;  %參數(shù)theta,用來極坐標(biāo)畫圓圈用x=x0+r*cos(theta);y=y0+r*sin(theta);plot(x,y,'-',x0,y0,'.');  %把圓周上的點用-直線段依次連接起來,正多邊形無限逼近圓,步長0.01很小,最終的圓心(x0,y0)用一點句號點標(biāo)出來axis equal   %橫縱坐標(biāo)刻度是一樣比例的,防止圓變形成橢圓。axis square命令意思是畫出來正方形的坐標(biāo)圖


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 永嘉县| 常熟市| 虎林市| 于都县| 长泰县| 社旗县| 江北区| 泸州市| 沂源县| 镇平县| 富源县| 阿克苏市| 鱼台县| 保定市| 林甸县| 灵川县| 岳池县| 通州市| 长沙县| 岱山县| 永寿县| 七台河市| 仁怀市| 浙江省| 贵南县| 道孚县| 山阴县| 嘉定区| 谷城县| 饶平县| 蕉岭县| 波密县| 丰顺县| 莫力| 武安市| 泸水县| 宜兰市| 湘乡市| 高淳县| 东乌珠穆沁旗| 铅山县|