0

自分で動的グラフを作成したい。しかし、私の最大の問題は、線とグラフの交点の座標を取得するにはどうすればよいですか (単なる線と仮定します)?

iPhoneのストックアプリのようなものですが、このアプリではチャートを見ていると、画面上で指を動かすと線とグラフの交点の座標が表示されます。

助けてくれてありがとう、私の英語でごめんなさい:)

4

3 に答える 3

0

質問と同じ例を使用して、この質問で iPhone の Stocks アプリと同様のことを行うには、非常に簡単です。

  • ユーザーがビューに触れると、ビュー上のタッチの座標を取得します ( CGPoint pt = [[touches anyObject] locationInView:yourView])
  • 次に、このポイントインビュー座標をグラフ上のポイントに変換します。おそらく、グラフの横座標 X=0 を表すポイントがどこに描画され、横座標 X=XMax を表すポイントもどこに描画されるかを知っているので、簡単な数学で次のことができます。タッチの X 位置が対応する横座標を決定する
  • 次に、タッチのポイントに対応する横座標 X がある場合、すべてがあります (この X に対応する曲線上の Y は、グラフの dataSource によって与えられます)。

グラフに何らかの関数を描画するy=sin(x)とします。Y 軸のラベルを描画できるように Y 軸の幅が 20 ポイントであるため、X=0 を表す点がx=20ptUIView に描画されます。そして、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=5Y=sin(5)であるためですy=sin(x)

于 2012-10-15T15:52:20.113 に答える
0

たとえば、ウィキペディアがそれについて知っていること: http://en.wikipedia.org/wiki/Line-line_intersection

于 2012-10-15T16:24:04.637 に答える
0

頭のてっぺんから、グラフを表示するプログラムが通常これをどのように行うかを素朴に知らずに(つまり、ある種のグラフの「ベストプラクティス」):

グラフが多数の (線形) 線で構成され、法線方程式 y = kx+m で記述されていると仮定すると、参照線 (参照線と呼びましょう) が同じである場合の方程式を解く必要があると思います。グラフを構成する線としての x 座標と y 座標。

つまり、グラフが y = 2*x+100 (これは 1999 年からの超 IT 株です!) で表される 1 つの線であり、refline が現在 y = 120 にある場合、方程式系を解く必要があると思います。 120 = 2*x + 100 は、refline とグラフが交差する場所の x を取得します。

于 2012-10-15T15:52:32.150 に答える