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命令窗口中輸入如下命令:

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

3.

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

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

4.

直接畫圓已經可以了,下一步就是指定圓形坐標和半徑了。我們不妨先分析一下:

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

 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM