判断一个点是否在图片里

鼠标点选图片检测算法
bool in(D3DXVECTOR3 mouse)  //判断鼠标点是否在图片里               
{
D3DXVECTOR3 axis[8];      //这个数组存放8条边的向量      4条是图片的边,4条是四个角到点的边
axis[0] = arr[1] - arr[0];  //0-3存放4条边的向量
axis[1] = arr[2] - arr[1];
axis[2] = arr[3] - arr[2];
axis[3] = arr[0] - arr[3];
axis[4] = mouse - arr[0];   //4-7存放 4个角到鼠标点的向量
axis[5] = mouse - arr[1];
axis[6] = mouse - arr[2];
axis[7] = mouse - arr[3];
float vec[4];   //这个数组用来存放点乘的值 
for (int i = 0; i < 4; i++)
{
vec[i] = dotmulty(axis[i], axis[i + 4]);
if (vec[i] < 0)  //如果4个点乘的值有一个<0 就返回假      (向量点乘==0 互为垂直)
{                                                                                       (向量点乘<0 钝角大于90度)
return false;                                                            向量点乘>0 锐角小于90度)
}
}
return true;  //4个值都>0说明在点里

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值