日期:2014-05-20  浏览次数:20632 次

求水平角度问题
在一个平面上,每个点都有坐标,求任意2点连接成的直线和水平线的角度。。。。
用数学会做,怎么会java代码不会写。怎么用math.sin cos神马的啊。。。

------解决方案--------------------
连个坐标的x,y分别互减,构成一个直角三角形,然后使用Math.atan(y/x)得到角度,然后直接使用这个值,或者使用π - 该值就是水平线角度。

------解决方案--------------------
通过2点可以求出直线的斜率来,斜率就是直线与X轴正方向所成角的正切。也就是tanα
------解决方案--------------------
Java code

public static void test(Point a, Point b) {
        Point c = new Point(b.x, a.y);
        int ac = Math.abs(a.x - c.x);
        int bc = Math.abs(b.y - c.y);
        double ab = Math.sqrt(ac * ac + bc * bc);
        System.out.println(Math.asin(bc / ab) * 180 / Math.PI);
    }