判断点在线段的哪一侧(java 代码实现)
判断点在线段的哪一侧(向量外积计算)
需求:
判断点B在线段SE的哪一侧。
解决方法:用向量外积的形式进行计算(适用于直线)。
- 生成S到E的向量vectorStoE,在生成S到B的向量vectorStoB;
- 然后根据两个向量的外积大小判断;
- 大于0:在右侧;小于0:在左侧;等于0:在线上。
代码实现:
package com.company.direction;import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;/*** @author YiDianDian*/
public class DirectionTest {public static void main(String[] args) {Point startPoint = Point.builder().x(1).y(1).build();Point endPoint = Point.builder().x(6).y(2).build();Point vectorStoE = getVector(startPoint, endPoint);Point basePoint = Point.builder().x(3).y(3).build();Point vectorStoB = getVector(startPoint, basePoint);//根据两向量的外积判断点所在的位置。Double direction = vectorStoE.getX() * vectorStoB.getY() - vectorStoE.getY() * vectorStoB.getX();if (direction < 0) {System.out.println("在右侧");} else if (direction == 0) {System.out.println("在线上");} else {System.out.println("在左侧");}}/*** 返回向量** @param startPoint* @param endPoint* @return*/private static Point getVector(Point startPoint, Point endPoint) {return Point.builder().x(endPoint.getX() - startPoint.getX()).y(endPoint.getY() - startPoint.getY()).build();}@Data@Builder(toBuilder = true)@AllArgsConstructorstatic class Point {private double x;private double y;}}
判断点在线段的哪一侧(java 代码实现)相关推荐
- java判断名字是否为张三_用java代码写一个判断名字是不是以K或T开头的?
展开全部 package src; import java.util.Arrays; import java.util.Scanner; public class Assigment { public ...
- python判断点在直线的哪一侧_判断点在直线的哪一侧
2.2.1下面开始程序的设计: 由于本部分需要判断空间多边形的拓扑关系,现在约定凸多边形的边界和内部,凸多边形用顶点坐标的逆时针方向序列确定.凸多边形P Q的顶点序列为p1 p2 ..pn和q1 q2 ...
- 判断直线与线段 是否相交 + 加入误差 故需要判断重点 poj 3304 Segments
题目来源:http://poj.org/problem?id=3304 分析: 题目大意:给出n条线段两个端点的坐标,问所有线段投影到一条直线上,如果这些所有投影至少相交于一点就输出Yes!,否则输出 ...
- Java代码判断数据库中某张表是否存在
最近在开发一个同步数据的统计任务的时候遇到一个问题:要在Java代码中判断数据库中某张表是否存在,查资料后,总结了以下两种方法: 1.使用JdbcTemplate bean public boolea ...
- 怎么在Java里辨别小数_求教java中如何判断一个数是不是小数,求详细代码及解释...
求教java中如何判断一个数是不是小数,求详细代码及解释 关注:62 答案:2 mip版 解决时间 2021-01-29 22:49 提问者孤酒醉人心 2021-01-29 03:13 求教jav ...
- 如何判断2个线段相交
判断 2 个线段相交有很多方法,最直接的方法就是直接计算两条直线的交点,然后看看交点是否分别在这两条线段上.这样的方法很容易理解,但是代码实现比较麻烦. 还有一种常用的方法是通过向量叉积来判断的,这种 ...
- 判断两条线段是否相交 java_判断两个线段是否相交02
写在前面 在其他博客中看到这方面的知识,很多都是重复,并且说的总是云里雾里的,所以这里我就自己总结一下这种问题如何求解,判断两个线段是否相交在前面我们提到了会用到叉积的一点知识,那么这里就来详细说一下 ...
- 判断三维空间两线段是否相交(附代码)
文章目录 一.推导过程 二.MATLAB代码 博文: 计算几何--判断两线段是否相交,提供了判断两线段是否相交的方法以及代码.然而,只是考虑了平面的情况.本博文提供一种简单有效的方法判断三维空间两 ...
- 中秋节图案 用java代码打出来_基于Java代码实现判断春节、端午节、中秋节等法定节假日的方法.doc...
基于Java代码实现判断春节.端午节.中秋节等法定节假日的方法 基于Java代码实现判断春节.端午节.中秋节等法定节假日的方法 这篇文章主要介绍了基于Java代码实现判断春节.端午节.中秋节等法定节假 ...
最新文章
- 将DBF,XLS,XML,MDB文件导入C#DataGrid的方法
- select框高度问题
- VO 2 具体的过程
- mysql 5.5 目录_Windows Server 2008 R2下修改MySQL 5.5数据库目录
- 第四周实践项目5 猴子选大王(循环链表)
- 震惊!快速幂怎么编?省一说暴力,银牌说递归,国集听完笑了
- Java并发– CyclicBarrier示例
- 简洁UI好玩的文字转换emoji表情微信小程序支持句子词语转换_源码
- 深入ASP.NET 2.0的提供者模型
- 16G DWDM SFP+光模块特性及解决方案
- 360实景地图插件 html,谷歌360全景地图让你足不出户欣赏美景
- 移动硬盘插到电脑后显示在设备和打印机解决办法
- 金融科技发展布局之服务渠道建设
- 火狐浏览器插件开发小试
- 厂家深度解读:采用凯夫拉中底的劳保鞋优点有哪些?
- via自定义搜索引擎代码_Via浏览器自定义主页
- 计算机c语言lms算法,lms算法(毕业论文).doc
- opencv的透视变换(投影变换)
- 快递查询(快递单号智能识别/快递公司+快递单号)-完整提供 Demo 代码示例及数据专业且全面的 API 查询接口
- 让代理服务器支持HTTPS很难吗?