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

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

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

一、定义结构体

判断向量和点的位置关系

二、定义判断函数

判断向量和点的位置关系

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")

  三、测试

  • 情形一

判断向量和点的位置关系

判断向量和点的位置关系

  • 情形二

判断向量和点的位置关系

判断向量和点的位置关系

 

相关文章:

  • 2022-12-23
  • 2021-11-14
  • 2021-11-10
  • 2021-04-21
  • 2021-11-21
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-07-14
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案