java 圆形坐标计算(根据角度和边长计算位置)

java 圆形坐标计算(根据角度和边长计算位置)

  • 通过三角函数计算
圆形的任意弧形角度都对应一个直角三角形,通过三角函数来计算直角三角形的边长,从而得出每个角度下圆形坐标位置

在这里插入图片描述
o 为起始位置, r为半径,求圆形坐标位置

代码实现


    /**
     * 根据角度和边长获取位置
     * @param p         起点位置
     * @param degree   角度
     * @param width     边长
     * @return  位置 抠抠群721765299
     */
    public static double[] getPoint(Point p,double degree,double width){
        int v = (int) (degree / 90);
        double d =  (degree % 90);
        double side = getRightSideFromDegree(d, width);//与中心的直角边长
        double top = getRightSideFromLength(side, width);//另一直角边
        double x = 0 , y = 0 ;
        switch (v){
            case 0:
                x = (p.x+top);
                y = (p.y-side);
                break;
            case 1:
                x = (p.x+side);
                y = (p.y+top);
                break;
            case 2:
                x = (p.x-top);
                y = (p.y+side);
                break;
            case 3:
                x = (p.x-side);
                y = (p.y-top);
                break;
        }
        return new double[]{x,y};
    }

    /**
     * 直角三角形 根据角度和斜边求直角边
     * @param degree    角度
     * @param width     斜边
     * @return 直角边长
     */
    public static double getRightSideFromDegree(double degree,double width){
        double cos = Math.cos(Math.toRadians(degree));
        return width * cos;
    }
    
    /**
     * 直角三角形 根据直角边和斜边求直角边
     * @param a 直角边
     * @param b 斜边
     * @return 直角边长
     */
    public static double getRightSideFromLength(double a,double b){
        return Math.sqrt(b*b - a*a);
    }

设坐标 24,24 半径24 通过计算得出的结果和图形如下图

在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/1ec4a714398746fda195a63bc792e7c0.png

代码摘自Java 开发之 根据坐标计算长度、角度等数据 Java开发 三角形算法汇总

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值