java判断某个经纬度是不是在矩形内
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java判断某个经纬度是不是在矩形内相关的知识,希望对你有一定的参考价值。
参考技术A 用Rectangle类,具有一下方法public boolean contains(double x,
double y)
测试指定坐标是否在 Shape 的边界内。
参数:
x - 要测试的指定的 X 坐标
y - 要测试的指定的 Y 坐标本回答被提问者和网友采纳
在java中判断一个点是不是在一个有斜度的矩形内的 Rectangle的用法
现在工作需要要写这样一个算法,如题;我看到java.awt.Rectangle提供了一个矩形对象可以判断一个点是否在这个矩形内,可是我看Rectangle的构造是确定左上角的一个点的坐标和宽度和高度,我想这样只能确定一个平行于X轴和Y轴的矩形;那如果现在给出的矩形有斜度即每条边都不平行于X轴和Y轴,应该就不能用Rectangle来定义了吧;
我的问题就是现在有一个有斜度的矩形已知四个顶点的坐标,怎么判断一个点在不在这个矩形内呢,Rectangle还有没有可以解决这个问题的拓展用法;
请老鸟们指点一下,先谢过~
BufferedImage 有getRGB(int x, int y) 下面方法可以获取r、g、b的值
public static int [] getRGB(BufferedImage image, int x, int y)
int [] rgb = null ;
if (image != null && x < image.getWidth() && y < image.getHeight())
rgb = new int [ 3 ];
int pixel = image.getRGB(x,y);
rgb[ 0 ] = (pixel & 0xff0000 ) >> 16 ;
rgb[ 1 ] = (pixel & 0xff00 ) >> 8 ;
rgb[ 2 ] = (pixel & 0xff );
return rgb;
追问
服务器用的 必须考虑效率问题,而且不能按UI方式做
追答终于看明白题目了,既然是矩形那么就有4条边,首先判断下点的高度是不是在矩形范围内
如果在矩形内,获取同一高度的矩形左右2点的坐标,然后判断x值是否在矩形内
如图中的样子,根据斜率计算斜边上的某个点是可以计算的
计算
终于看明白了,矩形的话应该能计算出斜率,根据这个计算和你要判断的点同样y值的两条边相对应的两个点的x值,然后判断这个点是否在2个值范围内
参考技术A 这个好像是个算法问题……要先根据每相邻两点得出一个斜率公式,计算该点坐标是否分别在两条平行线之间
变换坐标的做法似乎更麻烦一点 参考技术B Path2D用这个对象表示非正规的图形,moveTo lineTo可以表示一个这样的图形。他是shape接口的实现,可以直接使用contains(double x, double y)来判断点是不是在范围内。
以上是关于java判断某个经纬度是不是在矩形内的主要内容,如果未能解决你的问题,请参考以下文章