判断平面向量和点的位置关系

经常遇到判断平面向量和点的位置关系,做一个简单的记录,方便后面使用。原理是向量的叉乘

两个同起点的向量A(xA ,yA)和B(xB ,yB)的叉乘公式为: crossV = xA *y- yA*xB。

展开后即可得到代码中公式,进而可以判断点和向量的位置关系。

一、定义结构体

二、定义判断函数

1
2
3
4
5
6
7
def judgeDirection(startPoint, endPoint, P):
     
    tmp = (startPoint.y - endPoint.y)*P.x + (endPoint.x - startPoint.x)*P.y + startPoint.x*endPoint.y - endPoint.x*startPoint.y
    if tmp < 0:
        print("the point at the right of vector!")
    else:
        print("the point at the left of vertor")

  三、测试

  • 情形一

  • 情形二

 

 

posted @   半夜打老虎  阅读(1639)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示