怎么使用MATLAB程序绘制彩色的圆环?

怎么使用MATLAB程序绘制彩色的圆环?,第1张

从图形来看,一共n个同心圆,外面大圆n等分,然后从每个等分点作所有同心圆的两条切线

如果用极坐标表示,可以很容易求解切点,直接上画图的代码

n = 10 %同心圆数量

m = 40 % 等分点数

R = 1 % 外圆半径

s = 0:0.01*pi:2*pi % 控制圆的光滑程度的极坐标角度

t = 0:2*pi/m:2*pi % 等分点极坐标角度

x0 = R*cos(t)y0 = R*sin(t) % 等分点直角坐标

color=['r','g','c','k','m','y'] % 画图颜色

lc = length(color) % 颜色数组长度,超出后从头开始

for i = 1:n % 开始同心圆循环

  r = R/n*i % 当前同心圆半径

  a = acos(r/R) % 切线与圆心线角度(弧度制)

  x1 = r*cos(t-a)y1 = r*sin(t-a) % 任意等分点相对当前同心圆的第一个切点坐标

  x2 = r*cos(t+a)y2 = r*sin(t+a) % 任意等分点相对当前同心圆的第二个切点坐标

  plot(r*cos(s),r*sin(s),color(mod(i,lc)+1))hold on % 画同心圆

  for j = 1:m % 对每一个等分点循环

    plot([x0(j),x1(j)],[y0(j),y1(j)],color(mod(i,lc)+1))hold on % 第一条切线

    plot([x0(j),x2(j)],[y0(j),y2(j)],color(mod(i,lc)+1))hold on % 第二条切线

  end

end

axis equal  % 横纵坐标轴比例一致

圆环:

function yuanhuan(R,r)

syms u v

ezmesh((R+r*cos(u))*cos(v),(R+r*cos(u))*sin(v),r*sin(u))

axis equal

例子

yuanhuan(6,2)

圆盘:

function yuanpan(R,r)

theta=linspace(0,2*pi,90)ph=linspace(r,R,30)

[t,p]=meshgrid(theta,ph)

r=t*0

[x,y,z]=pol2cart(t,p,r)

mesh(x,y,z)

axis equal

例子

yuanpan(5,2)

利用圆环1的参数方程:x=2*(8+cos(v))*cos(u),y=2*(8+cos(v))*sin(u)+10,z=4*sin(v)和圆环2的参数方程:x=4*sin(v),y=2*(8+cos(v))*sin(u),z=2*(8+cos(v))*cos(u),再利用surf和mesh绘制其三维曲面。实现代码及运行结果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12198618.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存