public Point getPointOnSegment(double length, int x1, int y1, int x2, int y2) {
if(length==0) return new Point(x2, y2);
double angle = Math.atan((double)(y2-y1)/(double)(x2-x1));
return new Point((int)((length*Math.cos(angle))+x1), (int)((length*Math.sin(angle))+y1));
}
この関数は、この直線に沿ってx距離の直線上の点を返すことになっています。しかし何らかの理由で、時にはそれが想定されている反対方向の点を返すことがあります。線の角度が180度よりも大きい場合に起こりそうです。Java関数の復帰ポイントxの直線距離をデバッグする
私はこれを5時間以上見てきましたが、私は自分自身がこの問題を盲目に思っていたことを恐れています。誰が問題が何であるかを知ることができますか、それを代替するより良い機能を提案できますか?
まず、各式を別々のローカル変数に分割しようとします。それはデバッグする*ロット*になります... –