2016-11-20 17 views
-7

私は直線(私のパス)で接続された2つの座標(A1とA2)を持っています。私はどのようにして直線から与えられた座標(B1またはB2)の最短距離を計算できますか?パスからの最短距離の計算方法は?

A1 and A2 connected by straight line

+2

? –

+0

googleや良い数学の本に相談してください – UnholySheep

+0

私はJavaでかなり新しくて(そして数学でも悪いです)。どの機能を使用するべきかわからない。 –

答えて

0
  1. 数学

    としては、wikipedia の線と点との間の最短距離を説明し、 のように計算することができる次の

ラインは、2つの点P1 =(x1、y1)とP2 =(X2、Y2)を通過する場合、行から(X0、Y0)の距離がある: Blockquote

  • のJava implimentaion

    class Point { 
        double x,y; 
    
        Point(double pX, double pY){ 
        this.x= pX; 
        this.y= pY; 
        } 
    
        public double distance(Point A1, Point A2){ 
        double numerator = Math.abs((A2.y - A1.y)*this.x + (A2.x - A1.x)*this.y + A2.x*A1.y - A2.y*A1.x); 
        double denominator = Math.sqrt(Math.pow(A2.y - A1.y,2) + Math.pow(A2.x - A1.x,2)); 
    
        return numerator/denominator;  
        } 
    
    } 
    
  • あなたがメソッドを使用し、Point BPoints A1A2によって定義された線との間の距離を計算するにはこのような:

    public static void main (String[] args) throws java.lang.Exception 
    { 
        Point A1 = new Point(0,3); 
        Point A2 = new Point(2,0); 
        Point B = new Point(0,0); 
    
        System.out.println(
         B.distance(A1,A2) 
        ); 
    } 
    

    そしてhereは、コードアップとideoneで実行されています。

    しかし、嘆願は、これは数学の問題ではないのjavaで、基本的にバックを行っていくつかの良いと面白いコーディング本やぇを選び、それをやってみる、幸せなコーディング:)

    関連する問題