JTS:06 九交模型讲解

版本

org.locationtech.jts:jts-core:1.19.0
链接: github
九交模型讲解:Dimensionally Extended 9 Intersection Matrix

九交模型

九交模型,是通过矩阵来判断俩个物体的关系的,请看上面九交模型讲解

九交模型测试

  1. 测试环境
    www.geogebra.org 来生成俩个图形在这里插入图片描述

  2. 使用 九交模型判断关系

    T:交集存在,dim=0,1或2;
    F:交集不存在,dim=-1;
    0:交集存在,但其最高维度必须是0;
    1:交集存在,但其最高维度必须为1;
    2:交集存在,但其最高维度必须为2;

    内部边界外部
    内部FF2
    边界FF1
    外部212

    蓝图形 - 红图形 内部:内部 无点线面交集 F
    蓝图形 - 红图形 内部:边界 无点线面交集 F
    蓝图形 - 红图形 内部:外部 外部包含红图形面 为 2

    蓝图形 - 红图形 边界:内部 无点线面交集 F
    蓝图形 - 红图形 边界:边界 无点线面交集 F
    蓝图形 - 红图形 边界:外部 蓝图形边界是一条线,被红图形外部包含所以为 1

    蓝图形 - 红图形 外部:内部 包含红图形 2
    蓝图形 - 红图形 外部:边界 包含红图形边界 1
    蓝图形 - 红图形 外部:外部 俩个外部面交互 2

九交模型代码

/**
 * Geometry 九交模型
 * @author LiHan
 * 2023年9月15日 14:58:12
 */
public class GeometryMatrix {

    private GeometryFactory geometryFactory = new GeometryFactory();

    private static final Logger LOGGER = LoggerFactory.getLogger(GeometryMatrix.class);

    public static void main(String[] args) {
        GeometryMatrix geometryMatrix = new GeometryMatrix();
        geometryMatrix.strMatrix();
    }

    /**
     * 生成九交模型值
     */
    public void strMatrix() {
        Coordinate[] coordinates1 = new Coordinate[] {
                new Coordinate(1, 1),
                new Coordinate(1, 3),
                new Coordinate(4, 3),
                new Coordinate(4, 1),
                new Coordinate(1, 1)
        };
        Polygon polygon1 = geometryFactory.createPolygon(coordinates1);

        Coordinate[] coordinates2 = new Coordinate[] {
                new Coordinate(1, 4),
                new Coordinate(1, 6),
                new Coordinate(4, 6),
                new Coordinate(4, 4),
                new Coordinate(1, 4)
        };
        Polygon polygon2 = geometryFactory.createPolygon(coordinates2);
        // FF2FF1212
        LOGGER.info(polygon1.relate(polygon2).toString());
    }
  }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值