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

解决方案 »

  1.   

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

  2.   

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

  3.   

    谢谢2楼我可以算出斜率但是不知道哪个函数变成角度,谢谢我试试Math.atan2
      

  4.   

    Math.atan(斜率)得到的值怎么变成角度啊,是比如说Math.atan(1)=0.7853981633974483怎么变成角度啊
      

  5.   

    /**
     * 弧度转角度
     */ 
    public static function R2A(r:Number):int
    {
    return int(r*180/Math.PI);
    }
      

  6.   


    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);
        }
    没考虑钝角的情况,自己判断
      

  7.   


     Point c = new Point(b.x, a.y);
            int ac = Math.abs(a.x - c.x);
            int bc = Math.abs(b.y - c.y);
            System.out.println(Math.atan(bc / ac) * 180 / Math.PI);
    刚才多算了一步,
    唉 智商又下降了
      

  8.   


    脚本语言 ActionScript3.0 
      

  9.   

    楼主这结贴速度真给力赞一个
    又发一遍csdn啊