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...