-
2018-04-11 20:39:31
//判断点在圆内 private boolean inOval(PointBean point,PointBean centerPoint) { double v = Math.pow(centerPoint.x-point.x, 2) / Math.pow(a, 2) + Math.pow(centerPoint.y-point.y, 2) / Math.pow(b, 2); return v < 1; }
更多相关内容 -
C++判断一个点是否在圆内的方法
2020-08-27 10:41:15主要为大家详细介绍了C++判断一个点是否在圆内的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
java判断某个点是否在所画多边形/圆形内
2020-08-27 10:44:26主要为大家详细介绍了java判断某个点是否在所画多边形或圆形内的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 -
判断点或圆是否在矩形或圆内的方法
2018-08-23 17:34:33判断点或圆是否在矩形或圆内的方法,用与游戏开发中判断人物或技能的碰撞。 -
项目5 判断点是否在圆内
2020-12-13 11:44:42项目5 判断点是否在圆内 请编写一个Java应用程序,判断给定的平面点坐标(x1,y1)是否在一个指定半径的圆内。程序先请求输入圆的半径,再请求输入点的x坐标和y坐标,然后给出判断点是否在圆内并打印输出结果。假定...项目5 判断点是否在圆内
-
请编写一个Java应用程序,判断给定的平面点坐标(x1,y1)是否在一个指定半径的圆内。程序先请求输入圆的半径,再请求输入点的x坐标和y坐标,然后给出判断点是否在圆内并打印输出结果。假定圆心的位置在坐标原点(0,0),在圆上的点也被认为是在圆内。点到圆心的距离计算可以参考之前的DistanceBetweenTwoPoints.java源程序文件。当一个点判断完毕后,程序给出操作选择提示信息:是否继续判断还是退出程序。
本项目要求实现三个方法:calculateDistance()方法用来计算两个点之间的距离,返回两点间的距离值;isInCircle()方法用来判断点是否在圆内,通过比较圆心到点的距离和指定的半径值返回true或false的结果;printResult()方法根据isInCircle()方法的返回结果输出相应的信息。 -
参考代码:
package FifthProject; import java.util.Scanner; public class LuoYu_5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("What is the radius of the circle? "); double radius = input.nextDouble(); System.out.print("\nEnter the x coordinate: "); double x = input.nextDouble(); System.out.print("Enter the y coordinate: "); double y = input.nextDouble(); System.out.printf("The point (%.2f,%.2f), ",x,y); printResult(x,y,radius); int flag = -1; System.out.print("Enter 0 to exit or 1 to continue: "); while ((flag = input.nextInt()) == 1){ System.out.print("Enter the x coordinate: "); x = input.nextDouble(); System.out.print("Enter the y coordinate: "); y = input.nextDouble(); System.out.printf("The point (%.2f,%.2f), ",x,y); printResult(x,y,radius); System.out.print("Enter 0 to exit or 1 to continue: "); } } public static double calculateDistance(double x,double y){ return Math.sqrt(x * x + y * y); } public static boolean islnCircle(double x,double y,double patterndisance) { if (calculateDistance(x,y) > patterndisance) { return false; } else return true; } public static void printResult(double x,double y,double p){ if (islnCircle(x,y,p)) System.out.printf("is in of the circle with radius %.2f\n\n",p); else System.out.printf("is out the circle with radius %.2f\n\n",p); } }
-
结果显示:
What is the radius of the circle? 27 Enter the x coordinate: 22 Enter the y coordinate: 26 The point (22.00,26.00), is out the circle with radius 27.00 Enter 0 to exit or 1 to continue: 1 Enter the x coordinate: 17 Enter the y coordinate: 22 The point (17.00,22.00), is out the circle with radius 27.00 Enter 0 to exit or 1 to continue: 1 Enter the x coordinate: 5 Enter the y coordinate: 7 The point (5.00,7.00), is in of the circle with radius 27.00 Enter 0 to exit or 1 to continue: 0 Process finished with exit code 0
-
-
判断点是否在图形(矩形、椭圆、多边形)内的算法(一)
2021-12-13 09:48:29我们在下面的介绍中,只讨论三种图形,分别是矩形(包括正方形)、椭圆(包括圆)和多边形...只要判断点的横坐标是否在[x,x+w]、纵坐标是否是[y,y+h]内即可。 二、旋转矩形 对于旋转矩形,比较常规的做法是: ..我们在下面的介绍中,只讨论三种图形,分别是矩形(包括正方形)、椭圆(包括圆)和多边形。对于矩形和椭圆,比较常见的描述方法是(x,y,w,h),另外再加一个旋转角度a(绕中心旋转)。而对于多边形,一般的描述方法是一个二维点的数组。事实上矩形也是多边形(四边形),因为它的描述方法不一样,所以我们分开讨论。
一、无旋转矩形
这是最简单的一种情况,判断方法也简单。只要判断点的横坐标是否在[x,x+w]、纵坐标是否是[y,y+h]内即可。
二、旋转矩形
对于旋转矩形,比较常规的做法是:
1、求出未旋转状态下的四个顶点。
2、算出四个顶点绕中心旋转后的坐标。
3、用判断多边形的方法(后面才介绍呢),算出点是否在这个四边形内。
很容易看出,这个方法要做4次旋转计算,以及1次多边形边界计算。事实上,我们有更好的方法。
其实可以转换一下思维,把要判断的点,绕矩形中心,以相反方向旋转,再跟未旋转的矩形相比较即可。这种方法只需要做1次旋转计算,而且是否在未旋转矩形内的判断是很简单的。
三、旋转椭圆
我们知道,最简单的椭圆方程是:
它是一个以原点为中心,以2a为长轴,以2b为短轴的椭圆。对于这个椭圆,如果代入一个点P(x,y),使得C>1,那么P在椭圆外,反之,如果C<1,那么P在椭圆内。
所以,我们只要求出在(x,y,w,h,a)这种描述下的椭圆方程即可。
我们令:
ca = w / 2; cb = h / 2; dx = x + ca; dy = y + cb; sin = sin(a); cos = cos(a); rx = px - dx; ry = py - dy;
那么椭圆方程是:
四、多边形
判断一个点是否在多边形内的核心思想是,由点向任意方向引出一条射线,如果点跟多边形的交点为奇数,则点在多边形内,如果为偶数,则点在多边形外。
下面的代码可完成这一功能:
bool InPolygon(Point point, Point[] polygon) { bool _in = false; for (int i = 0, j = polygon.Length - 1; i < polygon.Length; j = i++) { if (((polygon[i].Y > point.Y) != (polygon[j].Y > point.Y)) && (point.X < (polygon[j].X - polygon[i].X) * (point.Y - polygon[i].Y) / (polygon[j].Y - polygon[i].Y) + polygon[i].X)) _in = !_in; } return _in; }
-
C++ 判断点是否在多边形内部的方法
2018-11-29 14:26:59在网上看到了很多种方法来判断“点是否在多边形内部”,最终选择了一种简单易懂,且适合所有多边形的方法--水平/垂直交叉点数判别法。 方法 如果从点P作水平向左的射线的话,假设P在多边形内部,那么这条射线与...简述
在网上看到了很多种方法来判断“点是否在多边形内部”,最终选择了一种简单易懂,且适合所有多边形的方法--水平/垂直交叉点数判别法。
方法
如果从点P作水平向左的射线的话,假设P在多边形内部,那么这条射线与多边形的交点必为奇数,如果P在多边形外部,则交点个数必为偶数(0也在内)。所以,我们可以顺序(顺时针或逆时针)考虑多边形的每条边,求出交点的总个数。还有一些特殊情况要考虑。假如考虑边(P1,P2),
1) 如果射线正好穿过P1或者P2,那么这个交点会被算作2次,处理办法是如果P的从坐标与P1,P2中较小的纵坐标相同,则直接忽略这种情况
2) 如果射线水平,则射线要么与其无交点,要么有无数个,这种情况也直接忽略。
3) 如果射线竖直,而P的横坐标小于P1,P2的横坐标,则必然相交。
4) 再判断相交之前,先判断P是否在边(P1,P2)的上面,如果在,则直接得出结论:P再多边形内部。//作用:判断点是否在多边形内 //p指目标点, ptPolygon指多边形的点集合, nCount指多边形的边数 int BlobDetect::PtInPolygon (Point p, vector<cv::Point>& ptPolygon, int nCount) { // 交点个数 int nCross = 0; for (int i = 0; i < nCount; i++) { Point p1 = ptPolygon[i]; Point p2 = ptPolygon[(i + 1) % nCount];// 点P1与P2形成连线 if ( p1.y == p2.y ) continue; if ( p.y < min(p1.y, p2.y) ) continue; if ( p.y >= max(p1.y, p2.y) ) continue; // 求交点的x坐标(由直线两点式方程转化而来) double x = (double)(p.y - p1.y) * (double)(p2.x - p1.x) / (double)(p2.y - p1.y) + p1.x; // 只统计p1p2与p向右射线的交点 if ( x > p.x ) { nCross++; } } // 交点为偶数,点在多边形之外 // 交点为奇数,点在多边形之内 if ((nCross % 2) == 1) { g_proj_log.ShowInfo("点在区域内"); return BLOB_OK; } else { g_proj_log.ShowInfo("点在区域外"); return BLOB_FAIL; } }
附上直线两点式方程式,如下图:
最后,附上一篇我看到的关于“点在多边形内部”的博客,有兴趣的话可以研究下 。相关链接
-
判断点是否在圆上(java)
2019-03-17 22:08:43判断点是否在圆上(java) package zuoye; class Point{ double x; double y; //设置点的x坐标 public void setX(double x){ this.x = x; } //设置点的y坐标 public void setY(double y){ ... -
判断点与圆的位置关系(点在圆内,点在圆外)
2018-03-30 17:51:11//定义一个Point类,其属性包括点的坐标,提供计算 ...//判断两个圆是否相交并输出结果 #include<iostream> using namespace std; class Point { public: void setPointt(int _x1,... -
Java:定义一个未知点,判断未知点是否在圆内。如果在圆内,输出true,否则输出false。
2020-11-08 13:05:15Java:定义一个未知点,判断未知点是否在圆内。如果在圆内,输出true,否则输出false。题目要求设计思路代码点类圆类圆类方法运行结果 题目要求 设计思路 设计思路根据题目要求: 1.设计一个类代表二维空间的一个点... -
判断点是否在圆内(C++编程思想)
2019-01-12 18:08:20点要做的工作是:定义两个变量(点的坐标 :x 和y),然后点上要做的事情就是计算我这个点和圆心这个点之间的距离(注意:比较点是否在圆内这个工作点可以做,圆也同样可以做) 圆要做的工作是:定义圆的半径,定义... -
百度地图画圆、矩形、多边形,并判断点是否在矩形或圆内部
2018-05-08 15:56:45判断点是否在圆内或矩形内部”这样的思路编排的。一,首先是定位。先定义6个百度坐标点,然后在坐标点上创建对应的marker,再通过map.addOverlay(marker)方法将6个marker定位在百度地图中,并利用marker.... -
百度地图API 判断点是否在圆形内
2015-12-03 22:42:46* @fileoverview GeoUtils类提供若干几何算法,用来帮助用户判断点与矩形、 * 圆形、多边形线、多边形面的关系,并提供计算折线长度和多边形的面积的公式。 * 主入口类是GeoUtils, * 基于Baidu Map API 1.2。 ... -
判断一点是否在三角形的外接圆内
2015-09-21 23:07:470 P_1 P_2的三个顶点坐标P0(x0,y0), P1(x1,y1), P2(x2,y2)P_0(x_0, y_0),\space P_1(x_1,y_1),\space P_2(x_2,y_2)和另一点PP的坐标(x,y)(x,y),要判断点P是否在△P0P1P2\triangle P_0 P_1 P_2内。 这里给出两... -
c++实现判断点与圆的位置关系
2020-12-21 14:55:22(2)点在圆内 (3)点在圆外 c++代码实现: #include <iostream> using namespace std; //判断点和圆的位置关系 //点类 class Point { public: //getset方法 void setX(int x){ m_X=x; } ... -
java判断经纬度是否在地图圆内
2020-04-22 16:12:34方法一 geodesy <dependency> <groupId>org.gavaghan</groupId> <artifactId>geodesy</artifactId> <version>1.1.3</versi... -
python练习_定义圆定义点判断关系
2021-03-04 11:12:05定义一个点类,包括坐标x,坐标y, 定义一个圆类,包括圆点cp和半径r, 方法:1.求圆的面积;2.求圆的周长;3.判断一个实例点和实例圆的关系。 import math class Pointer(object): def init(self, x: float, y: ... -
JAVA判断一个地理坐标是否在一个多边形区域内和是否在一个圆形区域内(经纬度)
2018-03-05 20:17:27多边形和圆分开写,首先简单的就是判断是否在圆里面,如何判断一个坐标是否在圆形区域内,相信不用我说都知道,计算这个坐标点和圆心之间的距离,然后跟圆的半径进行比较,如果比半径大,就不在圆形区域内,如果小于... -
判断点与圆的位置关系
2020-07-02 20:37:47判断点与圆的位置关系 第一步,创建一个类,代表二维空间的一个点。二维空间确定一个点可参考平面直角坐标系中,确定了x坐标和y坐标,即可确定点的位置 package com.tyl.homework; import java.util.Scanner; /** ... -
求一个圆的面积及判断一个点是否在圆内
2016-07-03 21:41:11//判断一个点是否在圆内 boolean inCircle(Point _p)//返回值为布尔类型的函数,一般函数名为第三人称单数,例如:contains { //double i = (_p.getX()-p.getX())*(_p.getX()-p.getX())-(_p.getY()-p.... -
如何判断点是否在圆弧上
2021-04-30 11:51:07如何判断点是否在圆弧上 已知一个圆弧三点,A(起点),B(中点),C(结束点)。 可以求出圆心、半径 红色的分别是圆上的起点、中点、结束点。 1、首先判断圆心到某点P的距离,是否等于半径。 如果不等于半径,则不在圆... -
在圆环内随机生成点
2020-01-20 23:49:20这里写自定义目录标题在圆内随机生成点生成CDF(累计分布函数)交换x,y使用均匀分布函数带入python代码 ...最简单的方法是在一个R*R的正方形内随机选取一个点,判断随机生成的点是否在圆内即可。python代码如下: i... -
iOS 如何判断一个点在圆、方框、三角形区域内?
2017-07-24 14:22:29如何判断一个点是不是在方框(CGRect)、圆(Circle)、三角形(Triangle)内呢? 1.方框 //苹果官方方法可以判断 + (BOOL)point:(CGPoint)point inSquareArea:(CGRect)rect { return CGRectContainsPoint... -
百度地图API(3):判断地图上的点是否在 圆形 多边形 区域内
2017-08-04 16:49:57在学习过程中遇到了需要判断坐标点是否在区域内的需求,所以发现了这篇文章,特地转载过来 -
点是否在圆内?
2019-09-16 22:09:23编写程序,提示用户输入一个点(x,y),然后检查这个点是否在以原点(0,0)为圆心,半径为10的圆内。 首先输出提示用户输入一个点的位置的信息,用x,y存放;x0=0,y0=0存放原点,设置半径radius = 10;计算点到... -
GeoTools jts java 构建线的缓冲区 判断点在面内
2019-03-27 10:11:02因为是个新手,没接触过这些,研究了一整天,在同事的帮助下终于实现了这个功能 展现在了腾讯地图上,首先在腾讯地图上画了一条线。 画线代码如下,写在了JSP中: <!DOCTYPE html> <html> <... -
Qt-杂记 —— 如何判断一个点在一个区域范围内
2021-01-20 15:12:49文章目录如何判断一个点在一个区域范围内附录个人格言 如何判断一个点在一个区域范围内 我们有时候需要去判断鼠标点击的点或者某些点是不是在Qt 某个控件中定义的一个区域内,那么遇到这样的需求应该怎么办... -
java 坐标系运算 判断一个地理坐标是否在电子围栏 圆、矩形、多边形区域内
2020-05-28 08:21:13这几个坐标系的介绍放在下一节,而这些椭球体的转换将在第三部分介绍(主要就是数学中,空间直角坐标系旋转的问题)。 1.3 我国常见GCS 借助以下4个常见坐标系及椭球体,就可以推及到世界各地不同的GCS及椭球体,... -
opencv轮廓及点在轮廓内判断
2018-02-26 15:57:23查找轮廓轮廓到底是什么?一个轮廓一般对应一系列的点,也...关于序列表示的轮廓细节将在后面讨论,现在只要简单把轮廓想象为使用CvSeq表示的一系列的点就可以了.函数cvFindContours()从二值图像中寻找轮廓.cvFindConto... -
判断一个点是否在圆角矩形、椭圆形内
2012-02-06 13:40:42方法和判断点在矩形中使用的PtInRegion一样,hi.baidu.com/shukunzhang/blog/item/22c91582ed4890b76c811954.html 只是创建HRGN时使用不同的函数既可。 TRGNType = (rtRectangle, rtRoundRectangle, rtElliptic); ...