2017-04-24 15 views
0

Pythonで2点間の座標点をすべて取得するにはどうすればよいですか? 例:x1、y1の座標とx10、y10の座標を持つ点があります。私はそれらの間のすべてのポイントが必要です(この例ではx2、y2 ... x9、y9)。あなたの助けに大変感謝します!どのようにPythonの2つのポイント間の線の座標を計算するには?

+2

を使用してコンピュータグラフィックスで解決されます。p1とp10の距離で定義される半径内にある点を見つけることを指していますか? ( 'p1 =(x1、y1)'と 'p10 =(x10、y10)')はどこですか? – jrd1

+0

無限の数があります。整数だけが必要ですか? –

答えて

2

「すべて」?無限の数があります。

calculate the slope and intercept of the line between those two pointsとすることができます。それらを知ることで、xの値ごとにyの値を計算することができます。

これは高校の代数です。どうしたの?二点(x1, y1)(x2, y2)それらの間の線の方程式を考えると

は次のとおりです。

y = m*x + b 

m = slope = (y1-y2)/(x1-x2) 

b = y-intercept = (x1*y1 - x2*y1)/(x1-x2) 

あなたはサークルの通過を描く」を意味する場合2つのポイントの間にすべてのポイントを見つける "、私はその線の中点として中心点を計算し、その線の長さを持つ半径に等しい。中心からの距離を求め、それを半径と比較することによって、点が円の内側か外側かを計算します。

円の内側と外側の両方に無数の点があります。ここで本当に何をしようとしていますか?

+1

私はOPが2点間の距離によって定義される半径内の点を見つけることを指していると思うと思います(つまり、x1とx10を言及したことから、間に最大8つの他の点があることを意味します)。 – jrd1

+1

OPがどれを意味するのかわかりません。私は両方のための解決策を与えた。投票があなたのものなら、私はそれを削除することをお勧めします。両方の解決策は正しいです。 – duffymo

+1

同意し、同様に!あなたの回答は両方とも正確に答えられたと思います。うまくいけば、彼はすぐにそれを明らかにすることができます。 downvoteは私のものではありませんでしたが、最後のupvoteは+ 1/-1から+ 2/-1にプッシュしていました。 – jrd1

1
def intermediates(p1, p2, nb_points=8): 
    """"Return a list of nb_points equally spaced points 
    between p1 and p2""" 
    # If we have 8 intermediate points, we have 8+1=9 spaces 
    # between p1 and p2 
    x_spacing = (p2[0] - p1[0])/(nb_points + 1) 
    y_spacing = (p2[1] - p1[1])/(nb_points + 1) 

    return [[p1[0] + i * x_spacing, p1[1] + i * y_spacing] 
      for i in range(1, nb_points+1)] 

print(intermediates([1, 2], [10, 6.5], nb_points=8)) 

# [[2.0, 2.5], [3.0, 3.0], [4.0, 3.5], [5.0, 4.0], 
# [6.0, 4.5], [7.0, 5.0], [8.0, 5.5], [9.0, 6.0]] 
1

あなたが与えられた点間の線分のため整数ポイントのリストを生成したいようです。この問題は、たとえばBresenham algorithmまたはDDA algo

関連する問題