自分で動的グラフを作成したい。しかし、私の最大の問題は、線とグラフの交点の座標を取得するにはどうすればよいですか (単なる線と仮定します)?
iPhoneのストックアプリのようなものですが、このアプリではチャートを見ていると、画面上で指を動かすと線とグラフの交点の座標が表示されます。
助けてくれてありがとう、私の英語でごめんなさい:)
自分で動的グラフを作成したい。しかし、私の最大の問題は、線とグラフの交点の座標を取得するにはどうすればよいですか (単なる線と仮定します)?
iPhoneのストックアプリのようなものですが、このアプリではチャートを見ていると、画面上で指を動かすと線とグラフの交点の座標が表示されます。
助けてくれてありがとう、私の英語でごめんなさい:)
質問と同じ例を使用して、この質問で iPhone の Stocks アプリと同様のことを行うには、非常に簡単です。
CGPoint pt = [[touches anyObject] locationInView:yourView]
)グラフに何らかの関数を描画するy=sin(x)
とします。Y 軸のラベルを描画できるように Y 軸の幅が 20 ポイントであるため、X=0 を表す点がx=20pt
UIView に描画されます。そして、X 軸が 0 から 10 まで変化し、X=10 を表すポイントがビュー上に描かれていると想像しx=300pt
てください。
次に、x 座標がx=140pt
であるビュー上のポイントをユーザーがタップすると、グラフ上の座標 X=5 に対応することを簡単に計算できます ( (x-20)/(300-20)*Xmax = 120/240*10 = 5
、単純な 3 のルール)。したがって、ユーザーは X=5 に対応する点をタップし、曲線上で の点が をタップしたのは、曲線X=5
がY=sin(5)
であるためですy=sin(x)
。
たとえば、ウィキペディアがそれについて知っていること: http://en.wikipedia.org/wiki/Line-line_intersection
頭のてっぺんから、グラフを表示するプログラムが通常これをどのように行うかを素朴に知らずに(つまり、ある種のグラフの「ベストプラクティス」):
グラフが多数の (線形) 線で構成され、法線方程式 y = kx+m で記述されていると仮定すると、参照線 (参照線と呼びましょう) が同じである場合の方程式を解く必要があると思います。グラフを構成する線としての x 座標と y 座標。
つまり、グラフが y = 2*x+100 (これは 1999 年からの超 IT 株です!) で表される 1 つの線であり、refline が現在 y = 120 にある場合、方程式系を解く必要があると思います。 120 = 2*x + 100 は、refline とグラフが交差する場所の x を取得します。