JTS: 15 Angle 角度计算

这里写目录标题

版本

org.locationtech.jts:jts-core:1.19.0
链接: github

代码

在这里插入图片描述
在这里插入图片描述

package pers.stu.algorithm;

import org.locationtech.jts.algorithm.Angle;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.GeometryFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * 角度使用
 * @author LiHan
 * 2023-11-06 10:11:54
 */
public class AngleUse {

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

    private Coordinate A = null;

    private Coordinate B = null;

    private Coordinate C = null;

    public static void main(String[] args) {
        AngleUse angleUse = new AngleUse();
        angleUse.init();
        angleUse.test02();
    }

    public void init() {
        A = new Coordinate(1, 3);
        B = new Coordinate(1, 1);
        C = new Coordinate(3, 1);
    }

    public void test00() {
        LOGGER.info("是否是锐角:{}", Angle.isAcute(A, B, C));
        LOGGER.info("是否是钝角:{}", Angle.isObtuse(A, B, C));
        LOGGER.info("最小夹角:{}", Angle.angleBetween(A, B, C));
        LOGGER.info("最小夹角:{}", Angle.toDegrees(Angle.angleBetween(A, B, C)));
		
		/*
		 17:11:40.006 [main] INFO  pers.stu.algorithm.AngleUse - 是否是锐角:false
		 17:11:40.007 [main] INFO  pers.stu.algorithm.AngleUse - 是否是钝角:false
		 17:11:40.008 [main] INFO  pers.stu.algorithm.AngleUse - 最小夹角:1.5707963267948966
		 17:11:40.008 [main] INFO  pers.stu.algorithm.AngleUse - 最小夹角:90.0
		*/
    }

    public void test01() {
        //找对应的位置 0到180(逆时针)之间返回正数,180-360(顺时针)之前返回负数
        System.out.println(Angle.toDegrees(Angle.normalize(Angle.toRadians(50))));
        //50.0
        System.out.println(Angle.toDegrees(Angle.normalize(Angle.toRadians(181))));
        //-179.0
        System.out.println(Angle.toDegrees(Angle.normalize(Angle.toRadians(369))));
        //9.0
        System.out.println(Angle.toDegrees(Angle.normalize(Angle.toRadians(-10))));
        //-10.0
    }

    public void test02() {
        Coordinate Bi = new Coordinate(0,2);
        Coordinate Ai = new Coordinate(1,1);
        Coordinate Ci = new Coordinate(1,3);
        //延Ai-Bi边逆时针转到Ai-CI边的角度值
        System.out.println("Angle.interiorAngle(Bi,Ai,Ci)角度="+Angle.toDegrees(Angle.interiorAngle(Bi,Ai,Ci)));
        //Angle.interiorAngle(Bi,Ai,Ci)角度=315.0

        //延Ci-Ai边逆时针转到Ai-BI边的角度值
        System.out.println("Angle.interiorAngle(Ci,Ai,Bi)角度="+Angle.toDegrees(Angle.interiorAngle(Ci,Ai,Bi)));
        //Angle.interiorAngle(Ci,Ai,Bi)角度=45.0
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值