怎么判断当前坐标是不是在矩形内(外)部
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么判断当前坐标是不是在矩形内(外)部相关的知识,希望对你有一定的参考价值。
参考技术A编程?还是直接说方法?
刚解答过同样的题目,是需要C语言编程,而且判定过程用函数。
代码如下:
#include <stdio.h>
int check(float a,float b,float c,float d,float x,float y)
if((x<a)||(x>a+c)||(y<b)||(y>b+d))
return 1;
else if((x>a)&&(x<a+c)&&(y>b)&&(y<b+d))
return 2;
else return 0;
void main()
float a,b,c,d,x,y;
int p=0;
printf("请输入矩形的左下角点坐标和矩形的长、宽: ");
scanf("%f,%f,%f,%f",&a,&b,&c,&d);
printf("请输入点的坐标: ");
scanf("%f,%f",&x,&y);
p=check(a,b,c,d,x,y);
switch(p)
case 1: printf("点在矩形外边。");break;
case 2: printf("点在矩形内部。");break;
default: printf("点在矩形的边上。");break;
运行示例:
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)
java知道四个点坐标,怎么判断一个点是不是在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)其实知道思路,但是数学很差不会,所以不能写出那个方法,求救
写法不是很规范,但是思路都在,不限于矩形class Quar
public static boolean isInside(Point left,Point top,Point right,Point buttom,Point pointToCheck)
Line line1=Line.getLine(left, top),
line2=Line.getLine(top, right),
line3=Line.getLine(right, buttom),
line4=Line.getLine(buttom, left);
if(Line.getValue(line1, pointToCheck)>=0 && Line.getValue(line2, pointToCheck)>=0
&& Line.getValue(line3, pointToCheck)<=0 && Line.getValue(line4, pointToCheck)<=0)
return true;
else return false;
public static void main(String[] args)
System.out.println(isInside(new Point(0,1), new Point(1,8), new Point(2,7), new Point(1,1), new Point(1.2,7)));
class Point
double x;
double y;
Point(double x,double y)
this.x=x;
this.y=y;
class Line
double a;
double b;
double c;
Line(double a,double b,double c)
this.a=a;
this.b=b;
this.c=c;
static Line getLine(Point p1,Point p2)
//cy=ax+b
double a=(p1.y-p2.y)/(p1.x-p2.x),b,c;
if(Double.isNaN(a))throw new NumberFormatException("输入的两点有重合");
else if(Double.isInfinite(a))
a=1;
b=p1.x;
c=0;
else
b=(p1.x*p2.y-p2.x*p1.y)/(p1.x-p2.x);
c=1;
return new Line(a,b,c);
static double getValue(Line l,Point p)
return l.a*p.x+l.b-l.c*p.y;
参考技术A 很简单,我等下写给你
以上是关于怎么判断当前坐标是不是在矩形内(外)部的主要内容,如果未能解决你的问题,请参考以下文章
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)
java知道四个点坐标,怎么判断一个点是否在这个矩形区域内(矩形可能是斜着放的,有一定的斜度)