Repository navigation
Expand file tree
/
Copy pathPrintView.java
More file actions
101 lines (87 loc) · 2.83 KB
/
Copy pathPrintView.java
File metadata and controls
101 lines (87 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package view;
import model.Line;
import model.Point;
public class PrintView {
private static StringBuilder coordinatePrint = new StringBuilder();
public static final int COORDINATE = 24;
public void printAll(Line line) {
Point a = line.getA();
Point b = line.getB();
printCoordinate(a, b);
printDistance(line.lineDistance());
System.out.println(coordinatePrint.toString());
}
public static void printCoordinate(Point a, Point b) {
printBarY(a, b);
coordinatePrint.append(String.format("%3s", "┼"));
printBarX();
}
private static void printBarX() {
for (int i = 0; i < COORDINATE; i++) {
printRow();
}
coordinatePrint.append("\n");
coordinatePrint.append(" ");
for (int j = 0; j <= COORDINATE; j += 2) {
coordinatePrint.append(String.format("%2d", j));
coordinatePrint.append(String.format("%6s", " "));
}
coordinatePrint.append("\n");
}
private static void printBarY(Point a, Point b) {
for (int i = COORDINATE; i >= 1; i--) {
printNumY(i);
printHeight();
if (i == a.getY()) {
skipDot(a);
}
if (i == b.getY()) {
aMatchYBar(a, b);
aMisMatchYBar(a, b);
}
coordinatePrint.append("\n");
}
}
private static void skipDot(Point a) {
for (int j = 0; j < a.getX(); j++) {
coordinatePrint.append(String.format("%4s", " "));
}
coordinatePrint.append("*");
}
private static void aMatchYBar(Point a, Point b) {
if (a.getY() == b.getY()) {
for (int j = 0; j < Math.abs(b.getX() - a.getX()); j++) {
coordinatePrint.append(String.format("%4s", " "));
}
coordinatePrint.append("*");
}
}
private static void aMisMatchYBar(Point a, Point b) {
if (a.getY() != b.getY()) {
for (int j = 0; j < b.getX(); j++) {
coordinatePrint.append(String.format("%4s", " "));
}
coordinatePrint.append("*");
}
}
private static void printNumY(int i) {
if (i % 2 == 0) {
coordinatePrint.append(String.format("%2d", i));
}
if (i % 2 == 1) {
coordinatePrint.append(String.format("%2s", " "));
}
}
public static void printRow() {
for (int i = 0; i < 2; i++) {
coordinatePrint.append("─");
}
}
public static void printHeight() {
coordinatePrint.append("┃");
}
private static void printDistance(double lineDistance) {
coordinatePrint.append("점과 점사이의 간격 : ");
coordinatePrint.append(String.format("%-10.3f", lineDistance));
}
}