2

デカルト座標平面上に と の 2 つの点がAありB、そのxとのy座標が倍精度floats であるとします。Cそれらの間の距離の任意のパーセントであるポイントの位置を見つけるにはどうすればよいですか?

つまり、「//Do magic to C」の代わりに次のメソッドには何が入りますか? Aandは、それぞれのand座標を表すB2 つの で構成されていることに注意してください。doublexy

public static findProgressPoint(DoublePoint A, DoublePoint B, double position)
{
  if (position > 1 || position < 0) //Ensure that position is between 0 and 1, inclusive
    position = position - (int)position;
  DoublePoint C = new DoublePoint(0.0, 0.0);
  //Do magic to C
  return C;
}
4

2 に答える 2

4

これはうまくいくはずです:

double px = x1 + (x2-x1)*position;
double py = y1 + (y2-y1)*position;
DoublePoint C = new DoublePoint(px, py);

pxと のx間の座標で、x1の値に比例します。対応する座標です。x2x1positionpyy

于 2012-11-15T00:54:08.810 に答える
1
DoublePoint C = new DoublePoint( position * (A.x + B.x), position * (A.y + B.y) );
于 2012-11-15T00:55:24.533 に答える