在java中判断一个点是否在一个有斜度的矩形内的 Rectangle的用法

现在工作需要要写这样一个算法,如题;我看到java.awt.Rectangle提供了一个矩形对象可以判断一个点是否在这个矩形内,可是我看Rectangle的构造是确定左上... 现在工作需要要写这样一个算法,如题;我看到java.awt.Rectangle提供了一个矩形对象可以判断一个点是否在这个矩形内,可是我看Rectangle的构造是确定左上角的一个点的坐标和宽度和高度,我想这样只能确定一个平行于X轴和Y轴的矩形;那如果现在给出的矩形有斜度即每条边都不平行于X轴和Y轴,应该就不能用Rectangle来定义了吧;
我的问题就是现在有一个有斜度的矩形已知四个顶点的坐标,怎么判断一个点在不在这个矩形内呢,Rectangle还有没有可以解决这个问题的拓展用法;
请老鸟们指点一下,先谢过~
展开
 我来答
zgh26782000
2011-10-21 · TA获得超过1453个赞
知道小有建树答主
回答量:788
采纳率:0%
帮助的人:499万
展开全部
只要实现这个的话,不考虑效率问题,可以new一个image,然后把这个不规则的四边fill上去,当然要指定个颜色,然后获取你要判断坐标的点。然后判断下颜色是不是和填充的一样
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值是否在矩形内
如图中的样子,根据斜率计算斜边上的某个点是可以计算的
EvilProxy
2011-11-01 · TA获得超过294个赞
知道小有建树答主
回答量:280
采纳率:100%
帮助的人:263万
展开全部
这个好像是个算法问题……
要先根据每相邻两点得出一个斜率公式,计算该点坐标是否分别在两条平行线之间
变换坐标的做法似乎更麻烦一点
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daay1986
2011-11-04 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1473万
展开全部
Path2D用这个对象表示非正规的图形,moveTo lineTo可以表示一个这样的图形。他是shape接口的实现,可以直接使用contains(double x, double y)来判断点是不是在范围内。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式