matlab中surf怎么改变颜色_MATLAB作图

本文介绍了如何在MATLAB中进行2D和3D作图,包括极坐标与直角坐标的转换、3D图像的绘制,特别是如何绕X轴旋转得到球体。同时,详细讲解了3D图像颜色的控制,如何将3D图像设置为纯色,并提供了修改颜色的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

33937554472bdc44406b4102b097884e.png

未完,之后将逐渐更新

%%2D作图

1、极坐标转直角坐标

1.1直接用公式

利用极坐标转直接坐标公式

thet=0:2*pi/100:2*pi;
rho=1;
x=rho.*cos(thet);
y=rho.*sin(thet);
plot(x,y);

6f0ca1d43ad7a3f3d5540bd29cc11120.png

1.2 用pol2cart

[x,y]=pol2cart(thet,rho);相当于1.1中第三第四行代码

同理直角坐标转极坐标用cart2pol

2、画极坐标

不用plot用polar

thet=0:2*pi/100:2*pi;
rho=ones(1,101);%101指thet有101个
polar(thet,rho);

1c3d4a5232981f832a119161b8bef2cf.png

%%3D作图

1、绕对称轴作图

此时我已经有一个2维平面的图形了:

thet=0:2*pi/100:2*pi;
rho=1;
x=rho.*cos(thet);
y=rho.*sin(thet);
plot(x,y);

得到一个圆的二维图像

c5f3c0403e4b0769ac0d4eb4b9c1155c.png

此时我想绕X轴旋转,得到一个球体。

n = 100;    % 旋转一周所取点的个数
theta = (0:n)/n*2*pi;
X = x * ones(1,n+1);
Y = y* cos(theta);
Z = y * sin(theta);

06bb2fff8ee1095e9911596459f3dc2e.png

如图所示,绕x轴旋转相当于把每个点绕X轴旋转,因此X轴坐标仍为x,y轴坐标维y*cos(theta),z轴坐标为y*sin(theta)。theta取得越密集代表绕x轴旋转时画的点越多。

最后完整代码为:

thet=0:2*pi/100:2*pi;
rho=1;
x=rho.*cos(thet);
y=rho.*sin(thet);
x=x';
y=y';
plot(x,y);
n = 100;    % 旋转一周所取bai点的个数
theta = (0:n)/n*2*pi;
X = x * ones(1,n+1);
Y = y* cos(theta);
Z = y * sin(theta);
surf(X,Y,Z);

b721b7be8adbb8848dcae7e30e00152a.png

%%画图的其他函数及问题

1、3D图像上的颜色

3D图像上的颜色由Z轴决定,图上竖着的这个坐标轴

b721b7be8adbb8848dcae7e30e00152a.png

采用的是索引图格式,以Z轴数值作为索引值,matlab中自带了18种map

f03ece1d408c2dbcff58f811ba27e4d1.png

也可自行定义。

2、如何将t3D图像画成纯色

由于图像表面的颜色由Z轴决定,因此只要将对应map的值改成一种颜色即可。

(1)点击编辑,

(2)点击图窗属性

(3)按一下图像让其锁定到图像上

(4)改变面的颜色,改成纯色

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值