matlab中如何在空間中畫圓,已知圓心和另外兩點,這兩點到

2021-04-02 08:27:29 字數 6090 閱讀 6543

1樓:匿名使用者

1. 下面的程式給出了具體的計算過程.若要多次執行,建議編成m檔案;

2.資料若改為x0=1;y0=2;z0=3;xp=0;yp=2;zp=3;xq=1;yq=2;zq=4;得到一個平行於xoz平面的圓;

3.本問題的難點在於如何將平面座標轉換為空間座標,大部分計算利用空間解析幾何可以解決,整個過程個人感覺旋轉角度的計算重要且麻煩

matlab 座標系中畫圓已知半徑y=70和圓心點(550,,40)

2樓:匿名使用者

x0 = 550, y0 = 40; %原點(550,40)theta=0:pi/100:2*pi; %角度[0,2*pi]r=2; %半徑70

x=r*cos(theta)+x0;

y=r*sin(theta)+y0;

plot(x,y,'-')

axis equal

3樓:匿名使用者

clear

clcp = 0:3.1416*0.01:3.1416*2;

x = cos(p) * 70 + 550;

y = sin(p) * 70 + 40;

plot(x,y)

axis equal

matlab中如何求出以一點為圓心畫圓得到影象內的所有點的座標

4樓:匿名使用者

把這些點的所有座標存入陣列xy,假設圓心為(x0,y0)半徑r,節點數為版n,xy的第一列為x座標,

權第二列為y座標。**如下

x0=1;y0=1;r=2;n=100;

xy=zeros(100,2);

h=2*pi/(n-1);

for i=1:n

xy(i,1)=x0+r*cos((i-1)*h);

xy(i,2)=y0+r*sin((i-1)*h);

endplot(xy(:,1),xy(:,2))axis equal

matlab在極座標中畫圓,圓心為(0,0)和(1,1),怎麼畫?

5樓:匿名使用者

參考**:

t=linspace(0,2*pi,50);

r=2*ones(size(t));

z=1+2*cos(t)+i*(1+2*sin(t));

polar(angle(z),abs(z),'g')hold on

polar(t,r,'r')

說明:1、其實要點就在於怎樣計算出曲線各點對應的極座標值;

2、如果要在同一圖中繪製,應該先畫矢徑範圍更大的那條曲線,否則會顯示不完整。

知道了圓的半徑和圓心座標,怎樣用matlab畫出這個圓?

6樓:匿名使用者

方法來有很多,列舉兩種自

先用[x,y]=scircle1(o1,o2,r)來生成以bai(o1,o2)為圓心,dur為半徑的zhi圓周上的散點[x,y],再用plot(x,y)就可dao

以了或者用polar極座標來畫,也是用描點法,a=0:0.1:2*pi;b=ones(size(a))*r;polar(a,b)也可以,具體的用法找幫助,很詳細

7樓:匿名使用者

比較粗糙的辦法:轉化成多邊形

請教matlab變化圓心畫圓

8樓:

第一種和第二種是動態的,第三種是靜態的

1、3d版

clear all;

clc;

r0=100;

r=27.5;

l1=180;

l2=105;

du=180/pi;

wt3=0:1:75;

y0=(acos((l1^2+l2^2-(r0+r)^2)/(2*l1*l2)))*du;

y1=23.9123*(pi*wt3/75-0.5*sin(2*pi*wt3/75))/pi;

y=y0+y1;

r=sqrt(l1^2+l2^2-2*l1*l2*cos(y/du));

%以上為公式

%hold on;% 加上hold on使得所有圖形都在一張圖上,按照matlab順序執行的特點,hold on不能放在多重繪圖語句的最後面,一般放在第一個繪圖語句的前面或者第一第二個語句的中間都行,如:a註釋所示

%axis equal% 是一種對當前圖形控制代碼的修正命令,放在任意位置都行,注意只對當前圖形控制代碼有效,對於動態圖,其用法跟hold on類似

x=zeros(1,76);% 刪除m,n的預開闢記憶體空間的語句,因為他們的長度是由0:0.1:2*pi的長度決定

y=zeros(1,76);% x,y的長度由0:75決定,所以為76

%以上為縮小範圍

for i=0:1:75 %畫曲線

x(i+1)=r(i+1)*cos(i*pi/180.0);

y(i+1)=r(i+1)*sin(i*pi/180.0);

k=1;

for t=0:0.1:2*pi %畫圓

m(k)=x(i+1)+r*cos(t);

n(k)=y(i+1)+r*sin(t);

k=k+1;

endz=repmat(i,1,k-1);

plot3(m,n,z,'r');

axis([-20 220 -40 200 0 78]);

hold on

plot3(x(1:i+1),y(1:i+1),0:i,'b');

pause(0.1);

% 將繪圖語句放在迴圈外

% hold on % a 如:把hold on語句放在此處也行

end2、2d版

clear all;

clc;

r0=100;

r=27.5;

l1=180;

l2=105;

du=180/pi;

wt3=0:1:75;

y0=(acos((l1^2+l2^2-(r0+r)^2)/(2*l1*l2)))*du;

y1=23.9123*(pi*wt3/75-0.5*sin(2*pi*wt3/75))/pi;

y=y0+y1;

r=sqrt(l1^2+l2^2-2*l1*l2*cos(y/du));

%以上為公式

hold on;% 加上hold on使得所有圖形都在一張圖上,按照matlab順序執行的特點,hold on不能放在多重繪圖語句的最後面,一般放在第一個繪圖語句的前面或者第一第二個語句的中間都行,如:a註釋所示

axis equal% 是一種對當前圖形控制代碼的修正命令,放在任意位置都行,注意只對當前圖形控制代碼有效,對於動態圖,其用法跟hold on類似

x=zeros(1,76);% 刪除m,n的預開闢記憶體空間的語句,因為他們的長度是由0:0.1:2*pi的長度決定

y=zeros(1,76);% x,y的長度由0:75決定,所以為76

%以上為縮小範圍

for i=0:1:75 %畫曲線

x(i+1)=r(i+1)*cos(i*pi/180.0);

y(i+1)=r(i+1)*sin(i*pi/180.0);

k=1;

for t=0:0.1:2*pi %畫圓

m(k)=x(i+1)+r*cos(t);

n(k)=y(i+1)+r*sin(t);

k=k+1;

endplot(m,n,'r');

axis([-20 220 -40 200]);

hold on

plot(x(1:i+1),y(1:i+1),'b');

pause(0.1);

% 將繪圖語句放在迴圈外

% hold on % a 如:把hold on語句放在此處也行

end3、靜態2d版

clear all;

clc;

r0=100;

r=27.5;

l1=180;

l2=105;

du=180/pi;

wt3=0:1:75;

y0=(acos((l1^2+l2^2-(r0+r)^2)/(2*l1*l2)))*du;

y1=23.9123*(pi*wt3/75-0.5*sin(2*pi*wt3/75))/pi;

y=y0+y1;

r=sqrt(l1^2+l2^2-2*l1*l2*cos(y/du));

%以上為公式

hold on;% 加上hold on使得所有圖形都在一張圖上,按照matlab順序執行的特點,hold on不能放在多重繪圖語句的最後面,一般放在第一個繪圖語句的前面或者第一第二個語句的中間都行,如:a註釋所示

axis equal% 是一種對當前圖形控制代碼的修正命令,放在任意位置都行,注意只對當前圖形控制代碼有效,對於動態圖,其用法跟hold on類似

x=zeros(1,76);% 刪除m,n的預開闢記憶體空間的語句,因為他們的長度是由0:0.1:2*pi的長度決定

y=zeros(1,76);% x,y的長度由0:75決定,所以為76

%以上為縮小範圍

for i=0:1:75 %畫曲線

x(i+1)=r(i+1)*cos(i*pi/180.0);

y(i+1)=r(i+1)*sin(i*pi/180.0);

k=1;

for t=0:0.1:2*pi %畫圓

m(k)=x(i+1)+r*cos(t);

n(k)=y(i+1)+r*sin(t);

k=k+1;

endplot(m,n,'r');

axis([-20 220 -40 200]);

hold on

plot(x(1:i+1),y(1:i+1),'b');

% 將繪圖語句放在迴圈外

% hold on % a 如:把hold on語句放在此處也行end

9樓:轉基因牛

for i=0:1:75 %畫曲線

x(i+1)=r(i+1)*cos(i*pi/180.0);

y(i+1)=r(i+1)*sin(i*pi/180.0);

for t=0:1:2*pi %畫圓

m=x(i+1)+r*cos(t);

n=y(i+1)+r*sin(t);

plot(m,n,'r')

hold on

endend

plot(x,y,'r')

axis equal

hold on

不知道是不是你hold on的問題

10樓:

^%試一下

r0=100;

r=27.5;

l1=180;

l2=105;

du=180/pi;

wt3=0:1:75;

y0=(acos((l1^2+l2^2-(r0+r)^2)/(2*l1*l2)))*du;

y1=23.9123*(pi*wt3/75-0.5*sin(2*pi*wt3/75))/pi;

y=y0+y1;

r=sqrt(l1^2+l2^2-2*l1*l2*cos(y/du));

%以上為公式

x=zeros(1,360);

y=zeros(1,360);

m=zeros(1,360);

n=zeros(1,360);

%以上為縮小範圍

for i=0:1:75 %畫曲線

x(i+1)=r(i+1)*cos(i*pi/180.0);

y(i+1)=r(i+1)*sin(i*pi/180.0);

%%%%%%%%%%%

%改變t間隔

for t=0:0.1:2*pi %畫圓m=x(i+1)+r*cos(t);

n=y(i+1)+r*sin(t);

%%%%%%%%%%%

%改變畫圖指令及hold on

plot(m,n,'-r')

hold on

endend

%%%%%%%%%%%

%最後的零點不出現

plot(x(1:76),y(1:76),'r')axis equal

如何在中畫圓 三角,如何在word中畫圓 三角

點 繪圖 按鈕來打源 開 繪圖 工具欄bai 裡面有一個 橢圓du 的圖形,用這zhi個畫圓。如果您dao想畫圓而不是橢圓,畫的時候請按住shift鍵 在 自選圖形 基本形狀 裡 有三角形 同樣,如果您想畫等邊三角形,畫的時候請按住shift鍵 在選單上右鍵,選擇繪圖,下面出來很多圖形選項。插入 自...

如何在PS中畫圓 急,ps中如何畫正圓

做了個簡易的教程,不知道是不是你要的那種 1 新建圖層用橢圓工具,按相shift畫圓2 油漆桶或者按alt delete填色 3 在圓內用橢圓工具再畫一個圈,右鍵羽化,羽化值按照你的要求填4 按delete刪除。這樣賀的內心就是空的了 1.新建圖層 2.在圖層裡,按住shift建立圓形選區,並填充顏...

請教 如何在matlab中把曲線之間的部分填充為別的顏色

x linspace 0,10 y1 sin x 1 y2 sin x fill x,fliplr x y1,fliplr y2 r t 0 0.01 2 pi y sin t y2 y 2 plot t,y,t,y2,r hold on 如果 bait的維 du數較zhi小,dao可以回 加細答n...