永发信息网

怎么用matlab表示一个点在三角形里面?

答案:2  悬赏:0  手机版
解决时间 2021-01-18 13:45
  • 提问者网友:却不属于对方
  • 2021-01-17 23:57
怎么用matlab表示一个点在三角形里面?
最佳答案
  • 五星知识达人网友:山河有幸埋战骨
  • 2021-01-18 00:42
解答如下

A=[x1 y1 0];
B=[x2 y2 0];
C=[x3 y3 0];
M=[x y 0];
MA=A-M;
MB=B-M;
MC=C-M
a=cross(MA,MB); b=cross(MB,MC); c=cross(MC,MA);
result=(a*b')*(b*c')*(c*a')
if result > 0
'M点在三角形内部'
else
'M点在三角形外部'
end追问result=(a*b')*(b*c')*(c*a')这步会不会有点不妥呢?您看这样行不行: if ((a>=0&xb>=0&c>=0)|(a<=0&b<=0&c<=0))
'M点在三角形内部'
else
'M点在三角形外部'
end追答a是向量, a>=0在MATLAB里结果是向量
其实最后叉乘之后只有第三个元素, x,y都是0
更简洁的写法 a(3)*b(3)*c(3) 大于0 则内, 否则在外
全部回答
  • 1楼网友:鸠书
  • 2021-01-18 01:26
您想问什么。。?
另外,“同号”表述不妥吧,叉乘得到的是向量,而且只对三维向量有定义。假设三角形放在XOY平面内的话,可以叉乘结果z方向系数同号与否。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯