python判断点在直线的哪一侧_判断点在直线的一侧
方法1:
已知P(0,0),Q(3,2)两点,试判断P,Q是否在直线2x+3y=4的同一侧。
解:直线2x+3y=4
即直线2x+3y-4=0
把P、Q代入2x+3y-4得到
2*0+3*0-4=-4<0
2*3+3*2-4=8
所以在两侧!
方法2:
怎么判断坐标为(xp,yp)的点P是在直线的哪一侧呢?
设直线是由其上两点(x1,y1),(x2,y2)确定的,直线方向是由(x1,y1)到(x2,y2)的方向。
假设直线方程为:Ax+By+C=0,则有:
A=y2-y1; B=x1-x2;
C=x2*y1-x1*y2;
这时可以通过计算D,来判断点P是在直线的哪一侧:
D=A*xp+B*yp+C
若D<0,则点P在直线的左侧;若D>0,则点P在直线的右侧;若D=0,则点P在直线上。
注:这里的直线是有方向性的!
方法3:利用矢量计算快速判定一点在直线的哪一侧
例如矢量A×矢量B=矢量C
设想矢量A沿小于180度的角度转向矢量B
将右手的四指指向矢量A的方向,右手的四指弯曲代表上述旋转方向,则伸直的拇指指向它们的叉乘得到的矢量C
如果矢量C的方向相同,则在同侧;否则在两侧。
注:叉乘计算公式!
若将向量用坐标表示(三维向量),向量a=(x1,y1,z1),向量b=(x2,y2,z2),则:
点乘,也叫向量的内积、数量积。
叉乘,也叫向量的外积、向量积。
|向量c| = |向量a×向量b| =
|a||b|sin
向量c的方向与a,b所在的平面垂直,且方向要用“右手法则”判断(用右手的四指先表示向量a的方向,然后手指朝着手心的方向<180摆动到向量b的方向,大拇指所指的方向就是向量c的方向);
向量a×向量b = |
i j k ||x1 y1
z1||x2 y2
z2| = (y1z2-y2z1, x2z1-x1z2, x1y2-x2y1)
(i、j、k分别为空间中相互垂直的三条坐标轴的单位向量)
向量的外积不遵守乘法交换率
向量a×向量b = -向量b×向量a
判断点是否在矩形、多边形中
方法1:
只要判断该点的横坐标和纵坐标是否夹在矩形的左右边和上下边之间。
例如:矩形四个顶点P1,P2,P3,P4,判断P是否包含在矩形中,
只需要判断:|P2P|×|P2P1|*|P3P|×|P3P4|<=0 and
|P1P|×|P1P4|*|P2P|×|P2P3|<=0
方法2:采用点是否包含在多边形中判断
以该点为顶点,做一条射线,使得矩形四个顶点中任意一点都不在射线上。
若该射线与矩形有且仅有一个交点,则在矩形内;若有零个或两个焦点,则在矩形外。
至于射线,可以通过选择肯定在矩形外的一点和已知点练成线段来构成。
只要点坐标不在矩形的left~right,bottom~top范围内即可。
python判断点在直线的哪一侧_判断点在直线的一侧相关推荐
- python判断点在直线的哪一侧_判断点在直线的哪一侧
2.2.1下面开始程序的设计: 由于本部分需要判断空间多边形的拓扑关系,现在约定凸多边形的边界和内部,凸多边形用顶点坐标的逆时针方向序列确定.凸多边形P Q的顶点序列为p1 p2 ..pn和q1 q2 ...
- python判断文件是否为空文件对象_判断Python对象是不是为文件对象的方法有哪些...
判断Python对象是不是为文件对象的方法有哪些 发布时间:2020-08-13 14:01:00 来源:亿速云 阅读:76 作者:小新 这篇文章主要介绍判断Python对象是不是为文件对象的方法有哪 ...
- lisp取两直线交点画圆_求过圆心直线与圆的两个交点
主要是注意所使用的数据类型. 之前用的是float,出现了一些意外,而且花费了我不少时间来反复验证.推导, 做了很多的无用功,而且,反复推导得出来的计算步骤并没有什么不牢靠的地方. 然后计算得到的结果 ...
- 两直线平行交叉相乘_计算几何算法5. 直线、线段和平面相交(2D和3D)
直线和线段相交 平面相交 直线-平面相交 两平面相交 三个平面相交 实现 intersect2D_2Segments() inSegment() intersect3D_SegmentPlane() ...
- mysql 判断日期是否在某范围内_判断时间是否在某个区间内
private bool IsInTimeInterval(DateTime time, DateTime startTime, DateTime endTime) { //判断时间段开始时间是否小于 ...
- vue判断列表中包含某一项_判断字符串中是否包含某个字符串
String对象的方法 1. indexOf() indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. 如果要检索的 字符串值没有出现,则该方法返回 -1. var str='你 ...
- 判断点在直线的哪一侧_点与线、线与线、距离这些一锅煮,你能否顺利消化
考纲原文 (1)能根据两条直线的斜率判定这两条直线平行或垂直. (2)能用解方程组的方法求两条相交直线的交点坐标. (3)掌握两点间的距离公式.点到直线的距离公式,会求两条平行直线间的距离. 知识点详 ...
- python智慧树判断题_智慧树知到_大数据分析的python基础_判断题答案
智慧树知到_大数据分析的python基础_判断题答案 答案: 更多相关问题 强心苷中毒先兆症状A.一定次数的早搏B.窦性心律低于60次/minC.视色障碍D.房室传导阻滞E.室性心动 强心苷在临床上可 ...
- Python基础day02 作业解析【6道 if 判断题、9道 循环题】
视频.源码.课件.软件.笔记:超全面Python基础入门教程[十天课程]博客笔记汇总表[黑马程序员] Python基础day02[if结构.if elif 结构.while循环.for循环.Break ...
最新文章
- 曝光机与曝光能量_LED曝光机
- VMware扩大硬盘后修改Linux逻辑卷大小
- an初始java运行环境错误_【环境问题】STS(eclipse)启动出现错误提示:an error hava occured,see the log......
- python小项目案例-python_flask小项目实例-编一个小网站
- hdu oj1092题解
- micropython是啥 知乎_micropython入门教程
- InstallSield更新包快速入门文档----感谢原作者ㄣ齊¨彡仯乄的无私提供
- 云技术-SaaS架构初步理解
- mysql在单片机移植_移植MySQL到嵌入式ARM平台
- redis memcache 性能比较
- 翻译:Google研究:回顾2020年并展望2021年 - Jeff Dean
- dm7数据库单机安装步骤
- java创建表情包_表情包生成器
- 二进制拆弹phase0
- win2008R2 不能访问局域网共享\局域网共享中无本机,解决办法
- 获取html元素的高,获取HTML元素的高度jQuery
- Springboot毕设项目电子竞技赛事管理系统f1v55java+VUE+Mybatis+Maven+Mysql+sprnig)
- 13种老人不适合带孩子_让老人带娃却遭怒摔!细数13种不适合带孩子的老人!...
- 怎么将图片kb压缩变小?
- Keil5创建工程(STM32F407)