24小时热门版块排行榜    

查看: 5711  |  回复: 2

zhengjx

金虫 (正式写手)

[求助] Matlab:用Plot3绘制的三维图,如何绘制其投影图?

源程序如下:
t=0:0.000001:1/20000;
x=10-10*sin(2*pi*t)+0.1*sin(2*pi*t);
y=0.1*t+10*cos(2*pi*t)+sqrt(10^2-(10-0.1)^2)*cos(0.5*0.01/10*sin(2*pi*20000*t+pi/2));
z=sqrt(10^2-(10-0.1)^2)*sin(0.5*0.01/10*sin(2*pi*20000*t+0*pi/8));  
plot3(x,y,z);
运行结果如下:

请问如何将三维图的投影绘制出来?需要XOY、XOZ、YOZ三个投影。用plot(x,y)等不可取。
非常感谢!
用plot3(x,y,0*z)可以看出在xoy平面内的投影的形状,但不是二维坐标系下的图形。
请高手指点一下呀呀呀呀呀!

[ Last edited by zhengjx on 2012-8-23 at 08:23 ]
回复此楼

» 收录本帖的淘帖专辑推荐

matlab典型案例

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

科研仅是生活的一小部分
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shizijun

木虫 (著名写手)

自定义头衔

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
zhengjx: 金币+20, ★★★★★最佳答案, 谢谢!能说明view的意思么? 2012-08-23 11:31:09
close all;clear all;clc;
t=0:0.000001:1/20000;
x=10-10*sin(2*pi*t)+0.1*sin(2*pi*t);
y=0.1*t+10*cos(2*pi*t)+sqrt(10^2-(10-0.1)^2)*cos(0.5*0.01/10*sin(2*pi*20000*t+pi/2));
z=sqrt(10^2-(10-0.1)^2)*sin(0.5*0.01/10*sin(2*pi*20000*t+0*pi/8));  
plot3(x,y,z);
xlabel('x');ylabel('y');zlabel('z');
view(0,90);
pause(2);
view(90,0);
pause(2);
view(0,0);
个人签名
2楼2012-08-23 10:50:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

shizijun

木虫 (著名写手)

自定义头衔

MATLAB提供了设置视点的函数view。

其调用格式为:       view(az,el)

az是azimuth(方位角)的缩写,EL是elevation(仰角)的缩写。它们均以度为单位。系统缺省的视点定义为方位角-37.5°,仰角30°。

当x轴平行观察者身体,y轴垂直于观察者身体时,az=0; 以此点为起点,绕着z轴顺时针运动,az为正,逆时针为负。

EL 为观察者眼睛与xy平面形成的角度。
当观察者的眼睛在xy平面上时,el=0; 向上el为正,向下为负;

下面是一些例子:
    AZ = -37.5, EL = 30 是默认的三维视角.
    AZ = 0, EL = 90 是2维视角,从图形正上方向下看,显示的是xy平面.
    AZ = EL = 0 看到的是xz平面.
    AZ = 180,EL=0  是从背面看到的xz平面.
    VIEW(2) 设置默认的二维视角, AZ = 0, EL = 90.
    VIEW(3) 设置默认的三维视角, AZ = -37.5, EL = 30.
   
VIEW([X Y Z]) 设置Cartesian坐标系的视角,[X Y Z]向量的长度大小被忽略.
[AZ,EL] = VIEW 返回当前的方位角和仰角.
http://www.matlabfan.com/thread-832-1-1.html
个人签名
3楼2012-08-23 12:56:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhengjx 的主题更新
信息提示
请填处理意见