2016-09-30 6 views
0

私はPythonの初心者です。私は2dで経路の長さを見つけることで立ち往生しています。私は何が間違っているのか分かりません。助けてください!別々のステップで2次元パスの長さを測定する方法

import math 
vector1 = v1 
vector2 = v2 
def length (v): 

    """ Length of a vector in 2-space. 

    Params: v (2-tuple) vector in 2-space 
    Returns: (float) length 
    """ 
    v = sqrt(v1**2 + v2**2) 
    return v 



def dist (P,Q): 

    """ Distance in 2-space. 

    Params: 
     P (2-tuple): a point in 2-space 
     Q (2-tuple): another point in 2-space 
    Returns: (float) dist (P,Q) 
    """ 
    dist = [(Q - P) **2] 
    dist = math.sqrt(sum(dist)) 
    return dist 


P = [p0, p1] 
Q = [q0, q1] 
def pathLength2d (pt): 

    """Length of a 2-dimensional path. 

    Standard length as measured by a ruler. 

    Params: pt (list of 2-tuples): path in 2-space 

    Returns: (float) length of this path 
    """ 
    pt = math.hypot(q0 - p0, q1 -p1) 
    return pt 

print (pathLength2d ([(0,0), (1,1)])) 
+0

投稿を正しくフォーマットしてください。フォーマットは全面的に行われています。投稿を改善するためにヘルプセンターをお読みください。それ以外の場合は終了します。あなたがそれを改善しない限り、あなたは質の低い回答を得て、それを取り除くために投票します。 – techydesigner

答えて

0

はい、フォーマットを修正して、すべてを4つのスペースで移動してください。

しかし、私はあなたの最初の方法があると信じて:メソッドは、あなたがこのようにそれらを定義する必要があるものをv1とv2知らない

def length(v): 
     """ Length of a vector in 2-space. 
     Params: v (2-tuple) vector in 2-space 
     Returns: (float) length 
     """ 
     v = sqrt(v1**2 + v2**2) 
     return v 

def length(v): 
    """ Length of a vector in 2-space. 
    Params: v (2-tuple) vector in 2-space 
    Returns: (float) length 
    """ 
    v1 = v(0) 
    v2 = v(1) 
    v = math.sqrt(v1**2 + v2**2) 
    return v 

あなたもする必要がuse math.sqrt

距離関数については、そのような2つのタプルを減算することはできません。 次のようなものが必要です:

def dist(P, Q): 
    """ Distance in 2-space. 
    Params: 
     P (2-tuple): a point in 2-space 
     Q (2-tuple): another point in 2-space 
    Returns: (float) dist (P,Q) 
    """ 
    dist = math.sqrt((P[0] - Q[0])**2 + (P[1]-Q[1])**2) 
    return dist 
関連する問題