编程心形线
A. 使用matlab编程:画出心形线和马鞍面
程序代码和图形如下:
%1心形线
clc;clear;close all;
i=-pi:0.1:pi;
x=2.*(sin(i)-sin(2*i)./2);
y=2.*(cos(i)-cos(i).^2);
figure(1);
plot(x,y);grid on;box on;
axis([-3 3 -4.2 1]);
title('心形线');xlabel('x');ylabel('y');
%2马鞍面
clc;clear;
a=10;
b=10;
x=-1.5:0.1:1.5;
y=-1.5:0.1:1.5;
[X,Y]=meshgrid(x,y);
Z=X.^2/a-Y.^2/b;
figure(2);
subplot(221);
surf (X,Y,Z);title('马鞍面'); xlabel('x');ylabel('y');
subplot(222);
surf (X,Y,Z);title('马鞍面'); xlabel('x');ylabel('y');
view(20,30);
subplot(223);
surf (X,Y,Z);title('马鞍面'); xlabel('x');ylabel('y');
view(50,20);
subplot(224);
surf (X,Y,Z);title('马鞍面'); xlabel('x');ylabel('y');
view(60,10);
B. 用java或者c程序输出如下图的这种简单心形,谁能给我讲讲思路。加上程序示例更好
用方程的话肯定输出不会和你的图完全一致
心形线方程如图
C. 数控铣床铣心形线的编程怎么写,法纳克的铣床
在心形模型上首先定个零点坐标 然后就好以零点坐标为基准 以增量或绝对坐标两种方式 推算出其他点的坐标
具体的编程语言 要看你是啥系统 Fanuc或Siemens还有宏程序等等
这个是基础
会了后 可以直接用 作图软件 画出个满意的心形样子 然后直接导出程序
一般什么Pro-E、UG都行 这些作图软件的定位是复杂的3D磨具 造型 一个小小的平面心形不在话下~
D. 用CAXA或者CAD怎样画心形
心形线的曲线方程: X=Rcosθ Y=Rsinθ 0 ≤θ≥2Л 1.可以将θ值根据需要适当的输入,确定坐标点然后用CAD样条曲线连接点越多越精确,在工程上用此法即可画图也可放样加工。 2.使用AutoLISP编程绘制,图形精确,绘图步骤麻烦。(本人只画过渐开线)
E. 数学软件高手:未入门的菜虫请教MATLAB编程问题!
1.心形线是圆的外摆线的一种,它是这样形成的:一个动圆沿一个定圆的圆周外部无滑动的滚动(两个圆的半径相等),动圆的圆周上的一固定点运动的轨迹就是心形线。程序如下:
function [xcar,ycar]=drawcardioid(varargin)
% A demonstration to show the form of the cardioid
error(nargchk(0,3,nargin));
nin = nargin;
if nin==0
cx1=0; cy1=0; % The coordinate of the center point.
r=1; % The radius of the circle.
elseif nin==1
cx1=0; cy1=0;
r=varargin{1};
elseif nin==2
cx1=0;
cy1= vararin{1};
r = varargin{2};
else
cx1=vararin{1};
cy1=vararin{2};
r=vararin{3};
end
if nargout==0
flag=1;
else
flag=0;
end
theta = linspace(0,2*pi,120);
x0 = r*cos(theta);
y0 = r*sin(theta);
x1 = x0+cx1;
y1 = y0+cy1;
cx2 = 2*x0+cx1;
cy2 = 2*y0+cy1;
x3=x0.*cos(theta)-y0.*sin(theta);
y3=x0.*sin(theta)+y0.*cos(theta);
for k=1:120
x2(k,:) = cx2(k)+x0;
y2(k,:) = cy2(k)+y0;
xx(k)=cx2(k)+x3(k);
yy(k)=cy2(k)+y3(k);
end
xcar = xx;
ycar = yy;
if flag
plot(x1,y1);
axis([cx1-3.2*r cx1+3.2*r cy1-3.2*r cy1+3.2*r]);
axis manual;
hold on
daspect([1 1 1]);
set(gcf,'doublebuffer','on');
for k = 1:120
plot(x2(k,:),y2(k,:),'g',xx(k),yy(k),'r*');
pause(0.05);
%plot(x2,y2,'color','w');
end
end
2.求a的平方根:
function y=sq(a)
ep=1.0E-5;
x1=1;
x2=(x1+a/x1)/2;
while(abs(x1-x2)>ep)
x1=x2;
x2=(x1+a/x1)/2;
end
y=x2;
3.多种方法迭代:该方程有一实根:-0.7684531615
方法一:
function y=st1()
ep=1.0E-5;
x1=-2;
x2=(-x1^5+2*x1-1)/(5*x1^2);
while(abs(x1-x2)>ep)
x1=x2;
x2=(-x1^5+2*x1-1)/(5*x1^2);
end
y=x2;
该方法发散
方法二:
function y=st2()
ep=1.0E-5;
x1=-2;
x2=(-5*x1^3+2*x1-1)/x1^4;
while(abs(x1-x2)>ep)
x1=x2;
x2=(-5*x1^3+2*x1-1)/x1^4;
end
y=x2;
该方法不稳定。
方法三:
function y=sq()
ep=1.0E-5;
x1=-1;
tim=-x1^5+2*x1-1;
x2=sign(tim/5)*(abs(tim/5))^(1/3);
while(abs(x1-x2)>ep)
x1=x2;
tim=-x1^5+2*x1-1;
x2=sign(tim/5)*(abs(tim/5))^(1/3);
end
y=x2;
该算法稳定收敛。
由于时间有限,最后一题留给你自己做吧。
F. 在同一平面中的两个窗口分别画出心形线和马鞍面
%问题1.
clear
ax1=subplot(1,2,1);
t=0:.01*pi:2*pi;
f1=polar(t,1+cos(t));
title('心形线');
legend(f1,'r=1+cost')
ax2=subplot(1,2,2);
x1=linspace(-40,20,40);
y1=linspace(-40,20,40);
[xx1,yy1]=meshgrid(x1,y1);
zz1=xx1.*yy1;
f2=surf(xx1,yy1,zz1);
title('马鞍面');
legend(f2,'z=x^2-y^2','Location','NorthWest')
xlabel('x轴')
ylabel('y轴')
zlabel('z轴')
axis([-40 20 -40 20 -1000 1500])
setAllowAxesRotate(rotate3d,ax1,false);
grid on
%问题2(给你四个程序,你自己挑吧):
%1)
clear
[x,y,z]=sphere(200);
i=find(x.^2+y.^2-x>=0&x.^2+y.^2+z.^2<1);
z(i)=NaN;
mesh(x,y,z)
hold on
t=0:pi/20:2*pi;
x=(cos(t)+1)/2;
y=sin(t)/2;
z=linspace(-1.2,1.2,length(t));
X=meshgrid(x);
Y=meshgrid(y);
Z=[meshgrid(z)]';
surf(X,Y,Z)
xlabel('x'),ylabel('y'),zlabel('z')
title('球面 X^2+Y^2+Z^2=1和圆柱面X^2+Y^2=X所围成的区域')
rotate3d on
%2)
clear
[X,Y,Z]=sphere(20);
mesh(X,Y,Z)
hidden on
hold on
axis equal
t=0:pi/20:2*pi;
x=(cos(t)+1)/2;
y=sin(t)/2;
z=linspace(-1.2,1.2,length(t));
X=meshgrid(x);
Y=meshgrid(y);
Z=[meshgrid(z)]';
surf(X,Y,Z)
xlabel('x'),ylabel('y'),zlabel('z')
rotate3d on
%3)
[x,y,z]=sphere(200);
i=find(x.^2+y.^2-x<=0&x.^2+y.^2+z.^2>=1);
z(i)=NaN;
mesh(x,y,z)
hidden on
hold on
ezplot('x^2+y^2=x')
title('球面 X^2+Y^2+Z^2=1和圆柱面X^2+Y^2=X所围成的区域')
rotate3d on
%4)
[x,y,z]=sphere(200);
i=find(x.^2+y.^2-x>=0);
z(i)=NaN;
mesh(x,y,z)
hidden on
hold on
ezplot('x^2+y^2=x')
title('球面 X^2+Y^2+Z^2=1和圆柱面X^2+Y^2=X所围成的区域')
rotate3d on
MATLAB的几个题目帮个忙解答一下,谢谢 悬赏分:20 | 解决时间:2008-7-22 16:47 | 提问者:灼眼の刃
1.在[0 2π]范围内绘制二维曲线图:y=sin(x)*cos(5x)。
2.在[0 2π]范围内绘制以Y轴为对数的二维曲线图:y=|1000sin(4x)|+1
3.在[–6 2]范围内用plot和fplot函数分别绘制二维曲线图。
4.绘制z=sin(x)*cos(y)的三维网格和三维曲面图,x,y变化范围均为 [0 2] 。
最佳答案 1.>> x=linspace(0,2*pi,100);
>>y=sin(x).*cos(5*x);
>> plot(x,y)
2.>> x=linspace(0,2*pi,100);
>>y=abs(1000*sin(4*x))+1;
>> semilogy(x,y)
3.没函数
4.>>x=0:0.01:2
>>y=0:0.01:2
>>z=sin(x)'*cos(y)
>> mesh(x,y,z)
>> surf(x,y,z)
在同一个直角坐标系内画相互函数y=xsinx和y=xsin(1/x)在区间【0.005,10】的图形,添加x轴和y轴的简单注解,创建图例框,并尝试用不同的线性颜色以及标记
[ 标签:直角坐标系,函数,区间 ] 在同一个直角坐标系内画相互函数y=xsinx和y=xsin(1/x)在区间【0.005,10】的图形,添加x轴和y轴的简单注解,创建图例框,并尝试用不同的线性颜色以及标记
matlab 编程
王木木 回答:1 人气:6 解决时间:2010-04-04 13:19
满意答案好评率:100% x=0.005:0.005:10;
y1=x.*sin(x);
y2=x.*sin(1./x);
plot(x,y1)
hold on
plot(x,y2,'r')
xlabel('x')
text(0.8,1.5,'曲线y1=2e^{-0.5x}'); %在指定位置添加图形说明
ylabel('y')
legend('y=x*sin(x)','y=x*sin(1/x)')
请教一个关于MATLSB的问题 画出函数z=x^2+y^2+sin(xy)的曲面及等高线图 可以的话把程序写出来
x=-8:.01:8;
y=-8:.01:8;
[X,Y]=meshgrid(x,y);
Z=X.^2+Y.^2+sin(X*Y);
mesh(X,Y,Z);
meshc(X,Y,Z);