Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 0 additions & 28 deletions src/main/java/coordinate/Coordinate.java

This file was deleted.

25 changes: 25 additions & 0 deletions src/main/java/coordinate/CoordinateMain.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
package coordinate;

import coordinate.domain.Coordinate;
import coordinate.domain.Line;
import coordinate.domain.Point;
import coordinate.dto.PointDtoFactory;
import coordinate.inputview.InputView;
import coordinate.resultview.ResultView;

import java.util.ArrayList;

public class CoordinateMain {
public static void main(String[] args) {
ArrayList<Point> points = InputView.input();

//dto 만들기
PointDtoFactory pointDtoFactory = new PointDtoFactory(points);

Coordinate coordinate = new Coordinate();
coordinate.drawPoint(pointDtoFactory.getPointDTO());

ResultView resultView = new ResultView(coordinate.getCoordinatesAxis(), coordinate.getCoordinatePlane());
resultView.disPlay(Line.calculatorLine(points));
}
}
26 changes: 0 additions & 26 deletions src/main/java/coordinate/MyString.java

This file was deleted.

49 changes: 49 additions & 0 deletions src/main/java/coordinate/domain/Coordinate.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
package coordinate.domain;

import coordinate.dto.PointDTO;
import coordinate.utils.CoordinateString;

import java.util.ArrayList;

public class Coordinate {
private static final int MAXiMUM_NUM = 24;
private ArrayList<CoordinateString> coordinatesAxis;
private ArrayList<CoordinateYLine> coordinatePlane;

public Coordinate() {
this.coordinatesAxis = makeCoordinateAxis();
this.coordinatePlane = makeCoordinatePlane();
}

private ArrayList<CoordinateYLine> makeCoordinatePlane() {
ArrayList<CoordinateYLine> coordinatePlane = new ArrayList<>();
for (int i = 0; i <= MAXiMUM_NUM; i++) {
coordinatePlane.add(new CoordinateYLine());
}
return coordinatePlane;
}

private ArrayList<CoordinateString> makeCoordinateAxis() {
ArrayList<CoordinateString> numCoordinate = new ArrayList<>();
for (int i = 0; i <= MAXiMUM_NUM; i++) {
numCoordinate.add(new CoordinateString(i));
}
return numCoordinate;
}

public void drawPoint(ArrayList<PointDTO> points) {
for (PointDTO point : points) {
this.coordinatePlane.get(point.getYPointDTO()).toMarking(point.getXPointDTO());
}
}



public ArrayList<CoordinateString> getCoordinatesAxis() {
return coordinatesAxis;
}

public ArrayList<CoordinateYLine> getCoordinatePlane() {
return coordinatePlane;
}
}
39 changes: 39 additions & 0 deletions src/main/java/coordinate/domain/CoordinateYLine.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package coordinate.domain;

import coordinate.utils.CoordinateString;

import java.util.ArrayList;

public class CoordinateYLine {
private static final int MAXiMUM_NUM = 24;

private ArrayList<CoordinateString> coordinateLine;
public CoordinateYLine() {
this.coordinateLine = makeLine();
}

public ArrayList<CoordinateString> makeLine() {
ArrayList<CoordinateString> line = new ArrayList<>();
for (int i = 0; i <= MAXiMUM_NUM; i++) {
line.add(new CoordinateString());
}
return line;
}

public void toMarking(int xPoint) {
this.coordinateLine.get(xPoint).toMarking();
}

public ArrayList<CoordinateString> getCoordinateLine() {
return coordinateLine;
}

@Override
public String toString() {
String lineToString = "";
for (int i = 1; i <= MAXiMUM_NUM; i++) {
lineToString += this.coordinateLine.get(i);
}
return lineToString;
}
}
11 changes: 11 additions & 0 deletions src/main/java/coordinate/domain/Line.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package coordinate.domain;

import java.util.ArrayList;

public class Line {

public static double calculatorLine(ArrayList<Point> points) {
return points.get(0).calculateLIne(points.get(1));
}

}
31 changes: 31 additions & 0 deletions src/main/java/coordinate/domain/Point.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package coordinate.domain;

import coordinate.dto.PointDTO;

public class Point {
private int xPoint;
private int yPoint;

public Point(int x, int y) {
this.xPoint = x;
this.yPoint = y;
}

public double calculateLIne(Point point) {
int a = this.xPoint - point.xPoint;
int b = this.yPoint - point.yPoint;
return Math.sqrt((Math.pow(a,2) + Math.pow(b,2)));
}

public PointDTO makePointDTO() {
return new PointDTO(this.xPoint,this.yPoint);
}

public int getXPoint() {
return xPoint;
}

public int getYPoint() {
return yPoint;
}
}
32 changes: 32 additions & 0 deletions src/main/java/coordinate/domain/PointFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package coordinate.domain;

import java.util.ArrayList;

public class PointFactory {

public static ArrayList<Point> makePointFactory(String input) {
ArrayList<Point> points = new ArrayList<>();
String[] divisionPoints = input.split("-");
for (String point : divisionPoints) {
points.add(makePoint(point));
}
return points;
}

private static String replaceString(String point) {
String result = point.replaceAll("\\)", "");
result = result.replaceAll("\\(", "");
result = result.replaceAll(" ", "");
return result;
}

private static Point makePoint(String point) {
String[] pointCoordinate = replaceString(point).split(",");
return new Point(Integer.parseInt(pointCoordinate[0]),Integer.parseInt(pointCoordinate[1]));
}

public static ArrayList<Point> testInput(String input) {
return makePointFactory(input);
}

}
19 changes: 19 additions & 0 deletions src/main/java/coordinate/dto/PointDTO.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
package coordinate.dto;

public class PointDTO {
private int xPoint;
private int yPoint;

public PointDTO(int x, int y) {
this.xPoint = x;
this.yPoint = y;
}

public int getXPointDTO() {
return xPoint;
}

public int getYPointDTO() {
return yPoint;
}
}
23 changes: 23 additions & 0 deletions src/main/java/coordinate/dto/PointDtoFactory.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package coordinate.dto;

import coordinate.domain.Point;

import java.util.ArrayList;

public class PointDtoFactory {
private ArrayList<PointDTO> pointDTOS = new ArrayList<>();

public PointDtoFactory(ArrayList<Point> points) {
add(points);
}

public void add(ArrayList<Point> points) {
for (Point point : points) {
this.pointDTOS.add(point.makePointDTO());
}
}

public ArrayList<PointDTO> getPointDTO() {
return pointDTOS;
}
}
20 changes: 20 additions & 0 deletions src/main/java/coordinate/inputview/InputView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package coordinate.inputview;

import coordinate.domain.Point;
import coordinate.domain.PointFactory;

import java.util.ArrayList;
import java.util.Scanner;

public class InputView {
public static ArrayList<Point> input() {
Scanner scanner = new Scanner(System.in);
System.out.println("좌표를 입력해주세요");

String result = scanner.nextLine();
ArrayList<Point> points = PointFactory.makePointFactory(result);

return points;
}

}
52 changes: 52 additions & 0 deletions src/main/java/coordinate/resultview/ResultView.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
package coordinate.resultview;

import coordinate.domain.CoordinateYLine;
import coordinate.utils.CoordinateString;

import java.util.ArrayList;

public class ResultView {
private static final int MAXiMUM_NUM = 24;
private static final String DASH = "---";
private static final String PLUS = " +";
private static final String BAR = "l";

private ArrayList<CoordinateString> coordinateAxis;
private ArrayList<CoordinateYLine> coordinatePlane;

public ResultView(ArrayList<CoordinateString> coordinateAxis, ArrayList<CoordinateYLine> coordinatePlane) {
this.coordinateAxis = coordinateAxis;
this.coordinatePlane = coordinatePlane;
}

private void displayYCoordinate() {
for (int i = MAXiMUM_NUM; i > 0; i--) {
System.out.println(this.coordinateAxis.get(i) + BAR + this.coordinatePlane.get(i));
}
}

private void displayXCoordinate() {
System.out.print(PLUS);
for (int i = 0; i < MAXiMUM_NUM; i++) {
System.out.print(DASH);
}
System.out.println();

for (CoordinateString coordinateAxis : this.coordinateAxis) {
System.out.print(coordinateAxis);
}

System.out.println();
}

public void disPlay(double pointLine) {
displayYCoordinate();
displayXCoordinate();
System.out.println("두 점 사이 거리는 " + pointLine);
}

public void displayTest() {
displayYCoordinate();
displayXCoordinate();
}
}
Loading