私は2つの点A(10,20)とB(15,30)を持っています。点は線ABを生成する。 Pythonで6(各方向3単位)の長さが6(各方向3単位)で垂直線、CDを描画する必要があります。
次のコードを使用して、AB ABの一部のプロパティがあります。
from scipy import stats
x = [10,15]
y = [20,30]
slope, intercept, r_value, p_value, std_err = stats.linregress(x,y)
_
CとDの場所を計算する方法を教えてください。XとY値が必要です。
CとDの値は、stopelyライブラリを使用して別の目的を達成するために使用されます。
slope
がABの傾きである場合、CDの勾配は-1/slope
です。これは水平方向の変化に対する垂直方向の変化に等しい:dy/dx = -1/slope
。これはdx = -slope*dx
を与えます。そしてPythagorean Theoremによって、3**2 = dy**2+dx**2
があります。 dx
の代わりになります。
3**2 = (-slope*dy)**2+dy**2
3**2 = (slope**2 + 1)*dy**2
dy**2 = 3**2/(slope**2+1)
dy = math.sqrt(3**2/(slope**2+1))
それからあなたはdx = -slope*dy
を得ることができます。最後に、dx
とdy
を使用してCとDを取得できます。そのため、コードは次のようになります。
import math
dy = math.sqrt(3**2/(slope**2+1))
dx = -slope*dy
C[0] = B[0] + dx
C[1] = B[1] + dy
D[0] = B[0] - dx
D[1] = B[1] - dy
(math.sqrt
は1つの数だけを返しますが、一般に正の平方根があります。cは正の平方根に対応し、dは負に対応します)。