一般に、2Dで曲線を描くには、1つのパラメーターを変更してから、x、yポイントのペアを収集し、そのペアをプロットします。あなたの場合、水平距離(x)を変更し、対応するy値を収集するだけで機能し、これらをプロットできます。
公式に関しては、それは非常に不明確です。基本的に、それは(不十分に定義された)専門用語の束が周りにある放物線です。これをグラフ化するには、xを0からLに変化させます(これは明らかではありませんが、とにかく、傾きが図に示されているようになるようにxを変化させる方法を計算する必要がありました。 、それは0からLであり、彼らはそう言うべきでした)。
現在C#を実行していませんが、このPythonコードを翻訳できることを願っています。
from matplotlib.pyplot import plot, show
from numpy import arange
G1 = .1 # an initial slope (grade) of 10% (note that one never uses percentages directly in calculations, it's always %/100)
G2 = -.02 # a final slope (grade) of 2%
c = 0 # elevation (value of curve when x=0, that is, y at PVC
L = 10. # the length of the curve in whatever unit you want to use (ft, m, mi, etc), but this basically sets your unit system
N = 1000 # I'm going to calculate and plot 100 points to illustrate this curve
x = arange(0, L, float(L)/N) # an array of N x values from 0 to (almost) L
# calculate the curve
a = (G2-G1)/(2*L)
b = G1
y = a*x*x + b*x + c # this is shorthand for a loop y[0]=a*x[0]*x[0] + b*...
plot(x, y)
show()
print (y[1]-y[0])/(x[1]-x[0]), (y[-1]-y[-2])/(x[-1]-x[-2])
最後の行は、最初と最後の勾配をチェックとして出力します(Pythonでは、配列の後ろからのインデックスカウントを無視します)。これは、G1とG2に指定したものと一致します。プロットは次のようになります。
あなたのリクエストについて:「私が設定しようとしている例の状況は、両方のグレード(垂直傾斜/傾斜)がちょうど5と-5です。ポイント1が0、0にあり、ポイント2が100であるとしましょう。 100.」、放物線では、基本的に3つの自由パラメーター(a、b、およびcに対応)を取得します。ここでは、それを過剰に指定したと思います。
PVC、PVT、およびPVIとは何ですか?PVC:開始点。したがって、Y_PVCは開始点の高さです。PVT:終点。PVI:初期勾配G1(つまり左側の曲線の接線)でPVCから線を引き、同様にPVTから線を引く場合、それらが交差する点はPVIと呼ばれます(ただし、誰かがこの点を気にする理由は私を超えて)。