matlab畫矩形和matlab畫圓

首先介紹一下rectangle函數編程

1.rectangle函數其實是一個畫矩形的行數,語法調用爲:函數

rectangle('Position',[x,y,w,h]),表示的是從左下角點(x,y)開始畫一個寬w高h的矩形。默認狀況下是從(0,0)開始畫一個寬1高1的矩形。例如直接在命令窗口出入:rectangle,axis equal  畫出的圖形以下圖所示。(axis equal的意思是保持橫縱座標等比例)工具

2.測試

rectangle函數能夠制定矩形邊的曲率,這就爲咱們畫圓提供了一個思路。改變曲率的參數是'Curvature',[x,y]  ,先改變一下曲率畫個試試。在matlab命令窗口中輸入以下命令:.net

rectangle('Position',[0,0,1,1],'Curvature',[0.5,0.8]),axis equalblog

3.ci

要畫圓的話只須要將曲率設置成1就好了。注意'Curvature',[0.5,0.8]後面的兩個參數[0.5,0.8]分別表示兩個邊的曲率。畫一個圓試試,輸入命令以下:it

rectangle('Position',[0,0,1,1],'Curvature',[1,1]),axis equal;io

4.for循環

直接畫圓已經能夠了,下一步就是指定圓形座標和半徑了。咱們不妨先分析一下:

1.rectangle函數原本畫的是矩形,能夠指定初始位置座標和半徑。若是要畫圓首先要把曲率都設置成1;

2.從上一部的圖中能夠看出畫出的圓是曲率爲0時矩形的內切圓,因此這裏參數的長和寬都等於2倍的半徑,即w=h=2r;

3.下面是圓心,能夠經過設置初始位置座標來實現,圓心就是初始位置座標(x,y)均加上半徑r。因此若是已知圓心座標(x,y)和半徑r畫圓的話,rectangle函數的未知參數應該爲  'Position',[x-r,y-r,2*r,2*r] 。

4.

matlab畫任意位置的圓。例如要畫一組圓,已知圓心座標和半徑。

x,y,r

1,1,3

0,4,2

5,4,1

matlab程序:

rectangle('Position',[-2,-2,6,6],'Curvature',[1,1]),axis equal

rectangle('Position',[-2,2,4,4],'Curvature',[1,1]),axis equal

rectangle('Position',[4,3,2,2],'Curvature',[1,1],'edgecolor','r'),axis equal  %加上顏色信息

 
 
 
 

        今天在用MATLAB編程的時候,用到了已知圓心和半徑,畫圓的程序,上網搜了一下,主要有下面兩種,在這裏總結一下:(這裏我都是放在函數中作的,想畫多個圓的話能夠加個for循環調用一下函數,或者直接用向量作都是能夠的,在這裏我不在多說)

第一種:

function [] = circle( x,y,r )
rectangle('Position',[x-r,y-r,2*r,2*r],'Curvature',[1,1],'linewidth',1),axis equal
end
       rectangle這個函數有興趣的能夠查一下,這個是畫矩形的函數,這裏咱們把曲率設置成1,畫出來的是圓,可是這種方法沒有辦法改變話圓的顏色,不是填充色,而是圓外輪廓的顏色,至今我還沒找到方法。若是有知道的能夠給我評論下,謝謝啦

補充: rectangle改變圓外輪廓的顏色:在函數中加入'EdgeColor', 'w',這個是看到評論中說能夠改變,可是我如今沒有環境,無法測試,感興趣的朋友能夠試一下,感謝評論留言的小夥伴。

第二種:

function [] = plot1( x,y,r )
theta=0:0.1:2*pi;
Circle1=x+r*cos(theta);
Circle2=y+r*sin(theta);
c=[123,14,52];
plot(Circle1,Circle2,'c','linewidth',1);
axis equal
end
這種是利用圓的參數方程作的,效果比上面的好,可是比上面的麻煩了一點

 

補充:看到有評論說能夠用MATLAB裏自帶的工具畫圓,可是我如今沒有工具,沒法進行測試,可是在這裏仍是補充上,感興趣的朋友能夠試一下:

 

viscircles(centers,radii)原文:https://blog.csdn.net/ZLK961543260/article/details/70216089

相關文章
相關標籤/搜索