已知一个矩形的对角线的两个点坐标分别为
A(0.123456789,0.523456789),B(0.423456789,0.323456789),
判断C(0.223456789,0.423456789)点是否在A和B构成的矩形中
一、Java方式
import javafx.scene.shape.Rectangle;
public static void main(String[] args){
double ldx = 0.123456789;//左下角x
double ldy = 0.523456789;//左下角y
double rtx = 0.423456789;//右上角x
double rty = 0.323456789;//右上角y
Rectangle rectangle = new Rectangle();
// 矩形左上角x y
rectangle.setX(ldx);
rectangle.setY(rty);
// 矩形宽高
rectangle.setWidth(rtx - ldx);
rectangle.setHeight(ldy - rty);
boolean isIn = rectangle.contains(0.223456789,0.423456789);
System.out.pringln("点是否在矩形中" + isIn);
}
二、Postgresql方式
上面这种方法在本地Windows环境下运行正常,放到Centos服务器的Docker容器上就会报错,找不到Rectangle类,所以采取了postgresql方法,核心sql如下
select point'0.223456789,0.423456789' <@ box'0.123456789,0.523456789,0.423456789,0.323456789'
mybatis中处理单引号,变量使用${pointx}方式