2012-04-12 8 views
-1

私はC#のカーブに沿ってピクセルを書き込むだけの基本的なアプリケーションを作っています。垂直カーブの式

私はthis website with a formula that looks promisingに出くわしました。私はこのウェブサイトも同じことについて話していると信じているhere。私は本当に理解していない何

は、それを実装する方法です。私はthe first linkのJavaScriptコードを調べてみましたが、実際にどのデータを提供する必要があるかはわかりません。 PVC、PVI、またはPVTに関連するものは、私が理解していないものです。

私がセットアップするつもり例の状況はちょうど両方のグレード(垂直傾斜/減少)のはわずか5および-5です。誰かが式であいまいな変数のいくつかを説明することができ

100、のがポイント1は、0である0とポイント2が100であるとしましょう、どのように私はカーブを描くように数式を使用しますか?一般

+2

これはQ&Aサイトです。 "私はそれを実装する方法がわからない"という質問はありません。 **質問する**。 –

+0

申し訳ありませんが私の要求を明示的に述べていないと、私は元の投稿で言ったことを繰り返すつもりですが、最終的に私の要求を理解することができればそれの前に質問があります。 「私が理解できないことを理解するのを助けることができますか?これらはPVC、PVI、PVTの発見です。私は「私は理解していません...」と言っているなら、私が理解できないことを理解したいと思うと確信しています。もし何かが分かっていないと私はそれを理解するために見ていないのですか? –

+2

StackOverflowはチュートリアルサイトではありません。このサイトの良い質問は、「C#Windowsフォームプロジェクトのクエリー結果を含むDataSetをGridViewにどのようにデータバインドするのですか? A * specific *、* technical *の質問です。誰も理解できないことを理解していない理由を知っている人はいませんが、ここでは多くの人がデータセットをグリッドビューにバインドする方法を知っています。 –

答えて

3

、1つのパラメータを変化させる2次元の曲線を描き、次にXを集め、Y点対、及びペアをプロットします。あなたの場合は、水平距離(x)を変えて対応するy値を収集し、次にこれらをプロットすることができます。

公式は非常に不明です。基本的には、放物線の周りに(不十分に定義された)専門用語がたくさんあります。これをグラフ化するには、xを0からLまで変化させたいと思います(これは明白ではありません.btw、つまり、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のNEGのインデックス数のチェック(と最初と最後の斜面を印刷しますこの配列は、私がG1とG2に指定したものと一致します。

ご要望についてはenter image description here

::私はセットアップするつもり例の状況はちょうどグレードの両方(垂直傾斜/減少)であるが、」わずか5で、-5レッツのようなプロットが見えます。あなたは基本的に3つのフリーパラメータ(a、b、cに対応)を得ています。ここでは、あなたはそれを指定しすぎたと思います。

PVC、PVT、およびPVIとは何ですか? PVC:開始点なので、Y_PVCは開始点の高さです。 PVT:終点。 PVI:最初の斜面G1(つまり、左側のカーブの接線)でPVCから線を引いて同様にPVTから線を引くと、それらが交差する点をPVIといいます。私を超えて)。

+0

本当にありがとうございました、それはまさに私が探していたものです! –