私はグラフを作成し、XMLファイルから解析されたさまざまな行を描画するvb.netで書かれたプログラムを持っています。各行は、グラフ上の点がその点の上または下になければならないかどうかを定義します。ポイントが上限を上回るか下回るかを確認するにはどうすればよいですか?
簡単に言えば、私は、最も近い数字の上と下を特定の点で見つける方法を探しています。
私たちは直線を持っています{(0,0)(1,1)(2,2)(3,3)}
と妥当性を確認したい点(1.5,4)
この点は線の上にある必要があると言います。
また、私は、線が必ずしも直線ではなく、曲線を表す多くのセグメントを有していてもよいことを言及する必要があります。
これを行う最も簡単な方法は、x軸上の点を囲む線上の2点を見つけ、それらの間の勾配を求めて補間することです。
だから私はこれを試してみました:
pointBelow = validationLine.points.Aggregate(Function(x, y) If(Math.Abs(x.X - paramPoint.XValue) < Math.Abs(y.X - paramPoint.YValues(0)), x, y))
pointAbove = validationLine.points.Aggregate(Function(x, y) If(Math.Abs(x.X - paramPoint.XValue) < Math.Abs(y.X - paramPoint.YValues(0)), x, y))
あなたが見ることができるように、これらは明らかに同じ値を返します両方ので、私は私が与えられた下のリストに最も近い番号を検索することができる方法を知りたいです同じことをしますが、その値を上に検索してください。
P.S.検証しているポイントが、私たちのライン上の頂点の1つとしてx軸上の正確に同じ場所にある可能性があります。これを無関係に解決するソリューションを探しています。