【MATLAB编程实例练习】-(35)判断点是否位于三角形内

本文介绍了如何使用MATLAB编程解决判断点是否位于三角形内的问题。根据Mathwork上Cody的第558题,通过输入点坐标和三角形三个顶点的坐标,程序返回每个点是否在三角形内的判断结果。例如,当点为[0, 0.5],三角形为[[0, 0], [1, 0], [1, 1]]时,输出为true。" 109760076,9671959,预训练模型与疾病知识结合:提升医疗NLP效能,"['自然语言处理', '深度学习', '人工智能', '机器学习', '预训练模型']
摘要由CSDN通过智能技术生成

题目

来源于Mathwork上的Cody,Problem 558 - Is the Point in a Triangle?

Check whether a point or multiple points is/are in a triangle with three corners
Points = [x, y];
Triangle = [x1, y1; x2, y2; x3, y3]
Return true or false for each point tested.
For example,
input: Points = [0, 0.5]; Triangle = [0, 0; 1, 0; 1, 1]
output: y = 0;

代码

function y = your_fcn_name(Points, Triangle)
y=[];
for i=1:size(Points,1)
  P=Points(i,:);
  A=Triangle(1,:);B=Triangle(2,:);C=Triangle(3,:);
  %使用同向法判断
  y=[y,(cross_2(P-A,B-A)*cross_2(C-A,B-A)>0) & (cross_2(P-B,C-B)*cross_2(A-B,C-B)>0) & (cross_2(P-C,A-C)*cross_2(B-C,A-C)>0)];
end

 % 二维向量的叉积  
function y=cross_2(x1,x2)
   y=x1(1)*x2(2)-x2(1)*x1(2);
end

end

测试


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值