已知直角三角形两点坐标和一边长,求另一点坐标 | 三角函数

Posted 洛阳泰山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了已知直角三角形两点坐标和一边长,求另一点坐标 | 三角函数相关的知识,希望对你有一定的参考价值。

如图上图:已知 A点坐标(ax,ay),B点坐标(bx,by),边长BC=L,求C点坐标(cx,cy)?

思路:

先利用A点坐标和B点坐标求出线段AB相对于坐标系的的倾角弧度(或者斜率),然后将AB
线旋转90度,即加上90度的弧度(π/2)得到BC线的斜率或者弧度,利用三角函数的正弦和余弦函数求助CD和BD的边长,然后用bx+bd,by+cy,即可得到C坐标

需要引入第三方jar包,pom文件配置

<dependency>
  <groupId>org.locationtech.jts</groupId>
  <artifactId>jts-core</artifactId>
  <version>1.18.2</version>
  <type>bundle</type>
</dependency>

代码示例

package com.ruoyi.uwb3d.util;

import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.LineSegment;

public class GeometryMathUtil 

    /**
     * 方法描述: 线段角度
     *
     * @param p0
     * @param p1
     * @return @link double
     * @throws
     * @author tarzan
     * @date 2022年02月24日 14:14:33
     */
    public static double angle(Coordinate p0, Coordinate p1)
        LineSegment ls=new LineSegment(p0,p1);
        return ls.angle();
    

    /**
     * 方法描述: 移动点
     *
     * @param p
     * @param angle
     * @param distance
     * @return @link Coordinate
     * @throws
     * @author tarzan
     * @date 2022年02月24日 14:14:49
     */
    public static Coordinate movePoint(Coordinate p,double angle,double distance)
        double sin=Math.sin(angle);
        Double a= distance*sin;
        double cos=Math.cos(angle);
        Double b= distance*cos;
        return new Coordinate(p.x+b.floatValue(),p.y+a.floatValue());
    


    public static void main(String[] args) 
        double distance=5;
        Coordinate p0=new Coordinate(1,1);
        Coordinate p1=new Coordinate(4,5);
        //当c点在b点上方
        double angle=angle(p0,p1)+Math.PI/2;
        //当c点在b点下方
        // double angle=angle(p1,p0)+Math.PI/2;
        Coordinate result= movePoint(p1,angle,distance);
        System.out.println(result.x+" "+result.y);


    


输出结果

当C点在B点上方时

当C点在B点下方时 

以上是关于已知直角三角形两点坐标和一边长,求另一点坐标 | 三角函数的主要内容,如果未能解决你的问题,请参考以下文章

求助!!!!知道三维两点坐标如何用MATLAB求直线方程,急求!!!!!!!

d3.js画圆弧和圆的坐标、弧长计算方法

已知直线终点与起点坐标 怎么两点距离

C语言 用直角边长 计算角度

已知三点如何求圆心坐标和半径

坐标轴上两点间距离公式是啥?