Games101学习笔记4-如何判断一个像素点是否在三角形里面

这个我们就用到了之前笔记1提到过的叉乘:

   这里做一个小的复习,叉乘我们是向量叉乘 ,遵循我们的右手定则,我们大拇指的朝向是z轴的方向,其他手指螺旋是两个向量的想对方向螺旋。

如下图 我们要判断 Q点是否在三角形里面,我们可以首先确定三角形的向量。

 

我首先创建了 向量 P1P2   向量P2P0 向量P0P1 作为我们的三角形向量,如何创建可以看我们自己习惯,但是要注意向量的方向。

首先我们可以先判断 向量P1P2和向量P1Q的关系,然后 我们通过叉乘 发现我们的大拇指指向屏幕外侧,说明我们的z值为正数,Q点在我们向量P1P2的左侧;

同理  我们判断向量P1P0和向量P1Q的关系,发现 叉乘后的值也是正数,说明 Q也在向量P1P0左侧。

但是我们在判断向量P2P0的时候,叉乘的结果为负数,说明Q在P2P0的右侧。

综上所述 这个Q  点在我们三角形外部。

总结以下,其实是我们如果在规定向量方向为三角形的逆时针方向时候,如果叉积的结果是全部在向量的左侧,这个点才在我们三角形内部,如果规定向量的方向为三角形的顺时针方向的时候,叉积结果如果全部在向量的右侧,这个点也可以被判断为我们三角形内部。

如果说出现边界上的情况(如下图),可以通过自己来定义这个点是否要进行处理:

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值