2 점 사이의 점 목록을 반환하는 메소드를 작성하고 있습니다. 어떻게 든 기울기 (y2-y1)/(x2-x1)은 startPoint 및 endPoint 위치에 관계없이 항상 0.0을 유지합니다. 여기 은 방법 :플로트 계산이 계속 유지됩니다.
public ArrayList<Point> calculatePath(Point startPoint, Point endPoint) {
ArrayList<Point> calculatedPath = new ArrayList<>();
int x1 = startPoint.x;
int y1 = startPoint.y;
int x2 = endPoint.x;
int y2 = endPoint.y;
System.out.println("Run");
if ((x2 - x1) != 0) {
float ratio = ((y2 - y1)/(x2 - x1));
System.out.println(ratio);
int width = x2 - x1;
for (int i = 0; i < width; i++) {
int x = Math.round(x1 + i);
int y = Math.round(y1 + (ratio * i));
calculatedPath.add(new Point(x, y));
}
} else {
if (y1 < y2) {
while (y1 == y2) {
calculatedPath.add(new Point(x1, y1));
y1++;
}
} else {
while (y1 == y2) {
calculatedPath.add(new Point(x1, y1));
y1--;
}
}
}
return calculatedPath;
}
사람이 내가 잘못 무엇을 지적 할 수 있습니까? 감사합니다
Sweet as !! 정말 고마워. : P –