matlab親測通過!
今年參加了數學建模,感覺挺高大上的,雖然我是數學專業的,但我這次主要負責編程,下面就給出我的matlab程序和部分圖(桌面在下)和同志們分享。親測通過!
function [x0,y0,z0]=DeskPoint_0(n,r)
%求桌面上各鏈接點座標
%r爲桌面圓的半徑
%d爲桌腿的寬度
%n爲桌腿數目即桌腿與桌面鏈接點數目
x0=zeros(1,n);
y0=zeros(1,n);
z0=zeros(1,n);
sita=pi/20;
for i=1:n+1
if i<11&&i>=1 %1=<i<11
x0(i)=-r*sin((i-1)*sita);
y0(i)=-r*cos((i-1)*sita);
z0(i)=0;
elseif i>=11&&i<21 %11=<i<21
x0(i)=-r*cos((i-11)*sita);
y0(i)=r*sin((i-11)*sita);
z0(i)=0;
elseif i>=21&&i<31 %21=<i<31.
x0(i)=r*sin((i-21)*sita);
y0(i)=r*cos((i-21)*sita);
z0(i)=0;
elseif i>=31&&i<=41 %31=<i<=40
x0(i)=r*cos((i-31)*sita);
y0(i)=-r*sin((i-31)*sita);
z0(i)=0;
end
end
end
function long=Diameter2Edge(x0,y0,z0,r,n)
%計算直徑到圓周上各鏈接點的距離
%x0,y0,z0分別爲圓周上各鏈接點的x,y,z座標
%r爲桌面圓周的半徑
%n爲圓周上鍊接點的個數
long=zeros(1,n);
for i=1:n
long(i)=sqrt(x0(i)^2+z0(i)^2);
end
end
function [x1,y1,z1]=SolvePoint1(n,s,sita,yi)
%求鋼筋上各連結點的座標
%n爲鋼筋上鍊接點的個數
%s爲最外面一條桌腿鋼筋連接處與桌腿和桌面鏈接處接點的距離
%sita爲最外面一條桌腿與桌面間的夾角
%yi爲桌面上各鏈接點的y座標
x1=zeros(1,n);
y1=zeros(1,n);
z1=zeros(1,n);
for i=1:n
if i<=n/2
x1(i)=-s*cos(pi-sita);
y1(i)=yi(i);
z1(i)=s*sin(pi-sita);
else
x1(i)=s*cos(pi-sita);
y1(i)=yi(i);
z1(i)=s*sin(pi-sita);
end
end
plot3(x1(1:n/2),y1(1:n/2),z1(1:n/2));
hold on;
plot3(x1((n/2+1):n),y1((n/2+1):n),z1((n/2+1):n));
hold on;
end