国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 额济纳旗| 万州区| 津市市| 镇雄县| 海盐县| 博罗县| 正安县| 镇雄县| 上杭县| 米脂县| 张家川| 昌平区| 常德市| 安福县| 沾益县| 天全县| 九江市| 双桥区| 博罗县| 定安县| 上虞市| 西乌珠穆沁旗| 灌南县| 新密市| 砚山县| 宜兰市| 临泽县| 潜江市| 佛教| 沾化县| 从江县| 苏州市| 和林格尔县| 古浪县| 黔南| 五家渠市| 西乌| 阳朔县| 庆安县| 九寨沟县| 灵璧县|