diff --git a/HW2/1_1_1.png b/HW2/1_1_1.png
new file mode 100644
index 0000000..8efed33
Binary files /dev/null and b/HW2/1_1_1.png differ
diff --git a/HW2/1_2_1.png b/HW2/1_2_1.png
new file mode 100644
index 0000000..4436dba
Binary files /dev/null and b/HW2/1_2_1.png differ
diff --git a/HW2/2_2_2.png b/HW2/2_2_2.png
new file mode 100644
index 0000000..5a632e9
Binary files /dev/null and b/HW2/2_2_2.png differ
diff --git a/HW2/HW2.html b/HW2/HW2.html
new file mode 100644
index 0000000..f16a694
--- /dev/null
+++ b/HW2/HW2.html
@@ -0,0 +1,1029 @@
+
+
+
+
+ HW2
+
+
+
+
+
+
+
+
+
+
+
HW2
+
Problem 1
+
+
+
+
+
Points:
+
+
+
+
index
+
position
+
+
+
+
+
0
+
(3, 1)
+
+
+
1
+
(4, 4)
+
+
+
2
+
(5, -1)
+
+
+
3
+
(2, -1)
+
+
+
4
+
(2, 2)
+
+
+
5
+
(2, 1)
+
+
+
6
+
(4, -1)
+
+
+
7
+
(6, 1)
+
+
+
8
+
(8, 1)
+
+
+
9
+
(8, 5)
+
+
+
10
+
(7, 4)
+
+
+
11
+
(3, 3)
+
+
+
+
Afer sorting:
+
+
+
+
index
+
position
+
deleted
+
+
+
+
+
2
+
(5, -1)
+
False
+
+
+
8
+
(8, 1)
+
False
+
+
+
7
+
(6, 1)
+
True
+
+
+
9
+
(8, 5)
+
False
+
+
+
10
+
(7, 4)
+
False
+
+
+
1
+
(4, 4)
+
False
+
+
+
11
+
(3, 3)
+
False
+
+
+
0
+
(3, 1)
+
True
+
+
+
4
+
(2, 2)
+
False
+
+
+
5
+
(2, 1)
+
False
+
+
+
6
+
(4, -1)
+
True
+
+
+
3
+
(2, -1)
+
False
+
+
+
+
Stack history:
+
+
+
+
i
+
stack
+
+
+
+
+
2
+
8,2
+
+
+
3
+
9,8,2
+
+
+
4
+
10,9,8,2
+
+
+
4
+
9,8,2
+
+
+
5
+
1,9,8,2
+
+
+
6
+
11,1,9,8,2
+
+
+
6
+
1,9,8,2
+
+
+
7
+
4,1,9,8,2
+
+
+
8
+
5,4,1,9,8,2
+
+
+
8
+
4,1,9,8,2
+
+
+
9
+
3,4,1,9,8,2
+
+
+
+
image:
+
+
+
+
+
+
+
+
+
+
+
+
Because the stack only iterate through points once and exactly once, one point either push in or push in then pop out which take constant time k. So the total time is k*n which is O(n).
+
+
+
+
+
Consider a square ABDC, p0 and p1 is A and B. Then we go to C and push it. Then D, however B-C-D makes a right turn so we pop C then push D. Then we form a convex polygon with points A,B,D, but C is not inside the polygon.
+
Correct, this is basically the same as Graham scan.
+
+
+
+
+
Wrong, counter example, c is the smallese angle but c is not a part of convex hull.
+
+
+
+
+
+
Correct, base on Akl–Toussaint heuristic, for a set of points, the one with the highest y coordinate must be a part of the convex hull.
+
+
+
+
+
Correct, this is a Ellipse with same focuses but different axis. The one with longer axis must contain the one with shorter axis but not vise versa. Thus, the point with highest sum must be a part of convex hull.
+
+
+
+
+
Wrong, same graph as question 2, C is the one with minimal distance sum however it is not a part of convex hull.
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HW2/HW2.md b/HW2/HW2.md
new file mode 100644
index 0000000..90cd21f
--- /dev/null
+++ b/HW2/HW2.md
@@ -0,0 +1,72 @@
+# HW2
+## Problem 1
+ - 1.
+ Points:
+ | index | position |
+ | ----- | -------- |
+ | 0 | (3, 1) |
+ | 1 | (4, 4) |
+ | 2 | (5, -1) |
+ | 3 | (2, -1) |
+ | 4 | (2, 2) |
+ | 5 | (2, 1) |
+ | 6 | (4, -1) |
+ | 7 | (6, 1) |
+ | 8 | (8, 1) |
+ | 9 | (8, 5) |
+ | 10 | (7, 4) |
+ | 11 | (3, 3) |
+
+ Afer sorting:
+ | index | position | deleted |
+ | ----- | -------- | ------- |
+ | 2 | (5, -1) | False |
+ | 8 | (8, 1) | False |
+ | 7 | (6, 1) | True |
+ | 9 | (8, 5) | False |
+ | 10 | (7, 4) | False |
+ | 1 | (4, 4) | False |
+ | 11 | (3, 3) | False |
+ | 0 | (3, 1) | True |
+ | 4 | (2, 2) | False |
+ | 5 | (2, 1) | False |
+ | 6 | (4, -1) | True |
+ | 3 | (2, -1) | False |
+
+ Stack history:
+ | i | stack |
+ | --- | ----------- |
+ | 2 | 8,2 |
+ | 3 | 9,8,2 |
+ | 4 | 10,9,8,2 |
+ | 4 | 9,8,2 |
+ | 5 | 1,9,8,2 |
+ | 6 | 11,1,9,8,2 |
+ | 6 | 1,9,8,2 |
+ | 7 | 4,1,9,8,2 |
+ | 8 | 5,4,1,9,8,2 |
+ | 8 | 4,1,9,8,2 |
+ | 9 | 3,4,1,9,8,2 |
+
+ image:
+ ![1_1_1](1_1_1.png)
+- 2.
+ - 1. Because the stack only iterate through points once and exactly once, one point either push in or push in then pop out which take constant time k. So the total time is k*n which is O(n).
+ - 2. Consider a square ABDC, $p_0$ and $p_1$ is A and B. Then we go to C and push it. Then D, however B-C-D makes a right turn so we pop C then push D. Then we form a convex polygon with points A,B,D, but C is not inside the polygon.
+ ![1_2_1](1_2_1.png)
+
+## Problem 2
+ - 1.
+ - QuickHull(p9 , p3 , {p0 , p1, p2 , p4, p5 , p6, p7 , p8, p10 , p 11, p12 })
+ - QuickHull(p9 , p5 , {p4 , p11, p8 , p10})
+ - QuickHull(p9 , p11 , {p4})
+ - QuickHull(p11 , p5 , {p10})
+ - QuickHull(p5 , p3 , {p6 , p7, p1})
+ - QuickHull(p7 , p3 , {p1})
+ - 2.
+ - 1. Correct, this is basically the same as Graham scan.
+ - 2. Wrong, counter example, c is the smallese angle but c is not a part of convex hull.
+ ![2_2_2](2_2_2.png)
+ - 3. Correct, base on Akl–Toussaint heuristic, for a set of points, the one with the highest y coordinate must be a part of the convex hull.
+ - 4. Correct, this is a Ellipse with same focuses but different axis. The one with longer axis must contain the one with shorter axis but not vise versa. Thus, the point with highest sum must be a part of convex hull.
+ - 5. Wrong, same graph as question 2, C is the one with minimal distance sum however it is not a part of convex hull.
\ No newline at end of file
diff --git a/HW2/HW2.pdf b/HW2/HW2.pdf
new file mode 100644
index 0000000..3510a6f
Binary files /dev/null and b/HW2/HW2.pdf differ
diff --git a/HW2/hw2-graham-scan.ipe b/HW2/hw2-graham-scan.ipe
new file mode 100644
index 0000000..5d68b9f
--- /dev/null
+++ b/HW2/hw2-graham-scan.ipe
@@ -0,0 +1,368 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+0.5 0 m
+-0.5 0.333 l
+-0.3 0 l
+-0.5 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+1 0 m
+0 0.333 l
+0 -0.333 l
+h
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+0
+
+64 256 m
+576 256 l
+
+
+192 192 m
+192 576 l
+
+1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+
+384 192 m
+576 320 l
+576 576 l
+320 512 l
+192 384 l
+192 192 l
+384 192 l
+384 192 l
+h
+
+A
+B
+C
+D
+
+256 768 m
+128 640 l
+
+
+240 656 m
+256 768 l
+
+
+240 656 m
+144 752 l
+
+
+128 640 m
+240 656 l
+
+
+
diff --git a/HW2/hw2-quickhull.ipe b/HW2/hw2-quickhull.ipe
new file mode 100644
index 0000000..0f03933
--- /dev/null
+++ b/HW2/hw2-quickhull.ipe
@@ -0,0 +1,284 @@
+
+
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+0.6 0 0 0.6 0 0 e
+
+
+
+
+
+0.5 0 0 0.5 0 0 e
+
+
+0.6 0 0 0.6 0 0 e
+0.4 0 0 0.4 0 0 e
+
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+
+
+
+
+
+-0.5 -0.5 m
+0.5 -0.5 l
+0.5 0.5 l
+-0.5 0.5 l
+h
+
+
+-0.6 -0.6 m
+0.6 -0.6 l
+0.6 0.6 l
+-0.6 0.6 l
+h
+-0.4 -0.4 m
+0.4 -0.4 l
+0.4 0.4 l
+-0.4 0.4 l
+h
+
+
+
+
+
+
+-0.43 -0.57 m
+0.57 0.43 l
+0.43 0.57 l
+-0.57 -0.43 l
+h
+
+
+-0.43 0.57 m
+0.57 -0.43 l
+0.43 -0.57 l
+-0.57 0.43 l
+h
+
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-0.8 0 l
+-1 -0.333 l
+h
+
+
+
+
+-1 0.333 m
+0 0 l
+-1 -0.333 l
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+0 0 m
+-1 0.333 l
+-1 -0.333 l
+h
+-1 0 m
+-2 0.333 l
+-2 -0.333 l
+h
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+5
+8
+9
+0
+2
+1
+3
+4
+10
+6
+7
+11
+
+12
+
+