Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-05-21, 16:51   #1
qqmoon
初级会员
 
注册日期: 2008-03-17
年龄: 39
帖子: 13
声望力: 18
qqmoon 正向着好的方向发展
默认 怎么求向量积

我有三个三维的坐标,分别为p1=[1 2 3] p2=[4 5 6] p3=[7 8 9], 现在想求矢量线段P3P2和P3P1的向量积,也就是P3P1,P3P2所在平面的法线,并画在三维图上,请问下怎么做?
qqmoon 当前离线   回复时引用此帖
旧 2009-05-22, 21:02   #2
qqmoon
初级会员
 
注册日期: 2008-03-17
年龄: 39
帖子: 13
声望力: 18
qqmoon 正向着好的方向发展
默认 回复: 怎么求向量积

自己解答下吧。。。
p3p1=p1-p3
p3p2=p2-p3
c=cross(p3p1,p3p2)
c就是所要求的法线
qqmoon 当前离线   回复时引用此帖
旧 2009-05-23, 00:22   #3
p123147
初级会员
 
注册日期: 2009-02-11
年龄: 38
帖子: 9
声望力: 0
p123147 正向着好的方向发展
默认 回复: 怎么求向量积

怎么绘制三维图的
麻烦告知一下
p123147 当前离线   回复时引用此帖
旧 2009-05-25, 17:19   #4
qqmoon
初级会员
 
注册日期: 2008-03-17
年龄: 39
帖子: 13
声望力: 18
qqmoon 正向着好的方向发展
默认 回复: 怎么求向量积

plot3(x,y,z)

x,y,z是c和p3的三维坐标
qqmoon 当前离线   回复时引用此帖
旧 2009-05-26, 10:52   #5
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 怎么求向量积

法向量是0,咋显示呢?
zsy312 当前离线   回复时引用此帖
旧 2009-05-27, 17:08   #6
qqmoon
初级会员
 
注册日期: 2008-03-17
年龄: 39
帖子: 13
声望力: 18
qqmoon 正向着好的方向发展
默认 回复: 怎么求向量积

引用:
作者: zsy312 查看帖子
法向量是0,咋显示呢?
不好意思,前面例子中的数是我随便代的,刚好比较特殊法向量是0
qqmoon 当前离线   回复时引用此帖
旧 2009-05-27, 20:42   #7
zsy312
普通会员
 
注册日期: 2008-08-17
年龄: 43
帖子: 77
声望力: 18
zsy312 正向着好的方向发展
默认 回复: 怎么求向量积

A=[1,2,3];%A点
B=[2,3,5];%B点
C=[3,5,7];%C点
clf%清除图像窗口
hold on;
t=0:1;
plot3(A(1)+t*(B(1)-A(1)),A(2)+t*(B(2)-A(2)),A(3)+t*(B(3)-A(3)),'r');%AB
plot3(B(1)+t*(C(1)-B(1)),B(2)+t*(C(2)-B(2)),B(3)+t*(C(3)-B(3)),'g');%BC
plot3(A(1)+t*(C(1)-A(1)),A(2)+t*(C(2)-A(2)),A(3)+t*(C(3)-A(3)),'b');%CA
D=cross(A-C,B-C);%AC叉乘BC
plot3(A(1)+t*D(1),A(2)+t*D(2),A(3)+t*D(3));%垂线
%画完后旋转即可看到空间图像的轮廓
zsy312 当前离线   回复时引用此帖
旧 2009-05-27, 21:38   #8
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 怎么求向量积

根据楼上的程序,自己编了一个:
A=[1,2,3];%A点
B=[2,3,5];%B点
C=[3,5,7];%C点
clf%清除图像窗口
hold on;
grid on
plot3([A(1),B(1)],[A(2),B(2)],[A(3),B(3)],'r')
plot3([A(1),C(1)],[A(2),C(2)],[A(3),C(3)],'B')
plot3([B(1),C(1)],[B(2),C(2)],[B(3),C(3)],'g')
plot3([A(1),B(1)],[A(2),B(2)],[A(3),B(3)],'*k')
plot3([B(1),C(1)],[B(2),C(2)],[B(3),C(3)],'*k')
plot3([A(1),C(1)],[A(2),C(2)],[A(3),C(3)],'*k')
D=cross(A-B,A-C);
M=(A+B+C)/3;
E=M+D;
plot3([E(1),M(1)],[E(2),M(2)],[E(3),M(3)],'M');
plot3([E(1),M(1)],[E(2),M(2)],[E(3),M(3)],'squareM');
fill3([A(1),B(1),C(1)],[A(2),B(2),C(2)],[A(3),B(3),C(3)],[0,1,.5]);
希望有帮助!!!
TTT_IOU 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 21:12


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.