diff --git a/docs/images/chapter-assets/circles/image-20210417122514664.png b/docs/images/chapter-assets/circles/image-20210417122514664.png
new file mode 100644
index 00000000..64f6aff1
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417122514664.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417122604560.png b/docs/images/chapter-assets/circles/image-20210417122604560.png
new file mode 100644
index 00000000..184a75b5
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417122604560.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417122645625.png b/docs/images/chapter-assets/circles/image-20210417122645625.png
new file mode 100644
index 00000000..8629fa57
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417122645625.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417125017892.png b/docs/images/chapter-assets/circles/image-20210417125017892.png
new file mode 100644
index 00000000..0eb025e1
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417125017892.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417125142892.png b/docs/images/chapter-assets/circles/image-20210417125142892.png
new file mode 100644
index 00000000..48fc2248
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417125142892.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417125217128.png b/docs/images/chapter-assets/circles/image-20210417125217128.png
new file mode 100644
index 00000000..13db2096
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417125217128.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417165543902.png b/docs/images/chapter-assets/circles/image-20210417165543902.png
new file mode 100644
index 00000000..ca266aa4
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417165543902.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417170131557.png b/docs/images/chapter-assets/circles/image-20210417170131557.png
new file mode 100644
index 00000000..d4d60645
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417170131557.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417173811587.png b/docs/images/chapter-assets/circles/image-20210417173811587.png
new file mode 100644
index 00000000..9fc97203
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417173811587.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417174019035.png b/docs/images/chapter-assets/circles/image-20210417174019035.png
new file mode 100644
index 00000000..5c0081da
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417174019035.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417174100036.png b/docs/images/chapter-assets/circles/image-20210417174100036.png
new file mode 100644
index 00000000..0b4aee31
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417174100036.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210417174215876.png b/docs/images/chapter-assets/circles/image-20210417174215876.png
new file mode 100644
index 00000000..26fcda62
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210417174215876.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210418111929371.png b/docs/images/chapter-assets/circles/image-20210418111929371.png
new file mode 100644
index 00000000..4c20984b
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210418111929371.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210418112008676.png b/docs/images/chapter-assets/circles/image-20210418112008676.png
new file mode 100644
index 00000000..8196344d
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210418112008676.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210418112038613.png b/docs/images/chapter-assets/circles/image-20210418112038613.png
new file mode 100644
index 00000000..84c54026
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210418112038613.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210419085430711.png b/docs/images/chapter-assets/circles/image-20210419085430711.png
new file mode 100644
index 00000000..cfaf2aba
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210419085430711.png differ
diff --git a/docs/images/chapter-assets/circles/image-20210419101805150.png b/docs/images/chapter-assets/circles/image-20210419101805150.png
new file mode 100644
index 00000000..7ff246fd
Binary files /dev/null and b/docs/images/chapter-assets/circles/image-20210419101805150.png differ
diff --git a/docs/images/chapters/circles/12f78070db3292742f66cf3cd9c7ed92.png b/docs/images/chapters/circles/12f78070db3292742f66cf3cd9c7ed92.png
new file mode 100644
index 00000000..6e77186e
Binary files /dev/null and b/docs/images/chapters/circles/12f78070db3292742f66cf3cd9c7ed92.png differ
diff --git a/docs/images/chapters/circles/222d374252584ac37d967e3ea0f8f28b.svg b/docs/images/chapters/circles/222d374252584ac37d967e3ea0f8f28b.svg
new file mode 100644
index 00000000..44228cc7
--- /dev/null
+++ b/docs/images/chapters/circles/222d374252584ac37d967e3ea0f8f28b.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/22bda43c696b48e49a2aa83f0c4a4a0e.png b/docs/images/chapters/circles/22bda43c696b48e49a2aa83f0c4a4a0e.png
new file mode 100644
index 00000000..07525b85
Binary files /dev/null and b/docs/images/chapters/circles/22bda43c696b48e49a2aa83f0c4a4a0e.png differ
diff --git a/docs/images/chapters/circles/23d4cd81c759c5374773fae149207c5b.svg b/docs/images/chapters/circles/23d4cd81c759c5374773fae149207c5b.svg
new file mode 100644
index 00000000..43d9a205
--- /dev/null
+++ b/docs/images/chapters/circles/23d4cd81c759c5374773fae149207c5b.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/474c72b5d1ad5c154d79312c15aee47a.svg b/docs/images/chapters/circles/474c72b5d1ad5c154d79312c15aee47a.svg
new file mode 100644
index 00000000..22939061
--- /dev/null
+++ b/docs/images/chapters/circles/474c72b5d1ad5c154d79312c15aee47a.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/485d678b1d63ed7a4c7c8bb282467f02.svg b/docs/images/chapters/circles/485d678b1d63ed7a4c7c8bb282467f02.svg
new file mode 100644
index 00000000..8706225d
--- /dev/null
+++ b/docs/images/chapters/circles/485d678b1d63ed7a4c7c8bb282467f02.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/571246ffef745298873a78473257d871.png b/docs/images/chapters/circles/571246ffef745298873a78473257d871.png
new file mode 100644
index 00000000..6e77186e
Binary files /dev/null and b/docs/images/chapters/circles/571246ffef745298873a78473257d871.png differ
diff --git a/docs/images/chapters/circles/5ef0824098ef73efbd89accb8db408e8.png b/docs/images/chapters/circles/5ef0824098ef73efbd89accb8db408e8.png
new file mode 100644
index 00000000..fe6c01c0
Binary files /dev/null and b/docs/images/chapters/circles/5ef0824098ef73efbd89accb8db408e8.png differ
diff --git a/docs/images/chapters/circles/6e455a6733dbca47acc0a36e7e490ba6.svg b/docs/images/chapters/circles/6e455a6733dbca47acc0a36e7e490ba6.svg
new file mode 100644
index 00000000..005b8a7d
--- /dev/null
+++ b/docs/images/chapters/circles/6e455a6733dbca47acc0a36e7e490ba6.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/9e19c65e23c32c802d2d77edb9812122.svg b/docs/images/chapters/circles/9e19c65e23c32c802d2d77edb9812122.svg
new file mode 100644
index 00000000..c738b623
--- /dev/null
+++ b/docs/images/chapters/circles/9e19c65e23c32c802d2d77edb9812122.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/b5799015ebae3ab9b6712106b3b20ee6.svg b/docs/images/chapters/circles/b5799015ebae3ab9b6712106b3b20ee6.svg
new file mode 100644
index 00000000..a2eefe40
--- /dev/null
+++ b/docs/images/chapters/circles/b5799015ebae3ab9b6712106b3b20ee6.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/cf8fc61992d2a75416894dee46ee5ffe.svg b/docs/images/chapters/circles/cf8fc61992d2a75416894dee46ee5ffe.svg
new file mode 100644
index 00000000..c65a49ad
--- /dev/null
+++ b/docs/images/chapters/circles/cf8fc61992d2a75416894dee46ee5ffe.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.svg b/docs/images/chapters/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.svg
new file mode 100644
index 00000000..60750b92
--- /dev/null
+++ b/docs/images/chapters/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.svg b/docs/images/chapters/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.svg
deleted file mode 100644
index a4cb1fd1..00000000
--- a/docs/images/chapters/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.svg b/docs/images/chapters/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.svg
deleted file mode 100644
index 0eb401c9..00000000
--- a/docs/images/chapters/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.svg b/docs/images/chapters/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.svg
deleted file mode 100644
index 9299a7ca..00000000
--- a/docs/images/chapters/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.svg b/docs/images/chapters/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.svg
deleted file mode 100644
index 426522ad..00000000
--- a/docs/images/chapters/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.svg b/docs/images/chapters/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.svg
deleted file mode 100644
index 6c0e7823..00000000
--- a/docs/images/chapters/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/459c037fb92685566d624f81a298e9c8.svg b/docs/images/chapters/circles_cubic/459c037fb92685566d624f81a298e9c8.svg
deleted file mode 100644
index a97cca3a..00000000
--- a/docs/images/chapters/circles_cubic/459c037fb92685566d624f81a298e9c8.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.svg b/docs/images/chapters/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.svg
deleted file mode 100644
index c6bc08b5..00000000
--- a/docs/images/chapters/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/63f35fb58d3571200ac6ccea0384b9d7.png b/docs/images/chapters/circles_cubic/63f35fb58d3571200ac6ccea0384b9d7.png
deleted file mode 100644
index b2f6adb9..00000000
Binary files a/docs/images/chapters/circles_cubic/63f35fb58d3571200ac6ccea0384b9d7.png and /dev/null differ
diff --git a/docs/images/chapters/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.svg b/docs/images/chapters/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.svg
deleted file mode 100644
index b5d632c4..00000000
--- a/docs/images/chapters/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.svg b/docs/images/chapters/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.svg
deleted file mode 100644
index dea287d7..00000000
--- a/docs/images/chapters/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/bc884416145a846cebddc8c5d13f147f.svg b/docs/images/chapters/circles_cubic/bc884416145a846cebddc8c5d13f147f.svg
deleted file mode 100644
index 08f5460d..00000000
--- a/docs/images/chapters/circles_cubic/bc884416145a846cebddc8c5d13f147f.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.svg b/docs/images/chapters/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.svg
deleted file mode 100644
index d9bc14e1..00000000
--- a/docs/images/chapters/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.svg b/docs/images/chapters/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.svg
deleted file mode 100644
index 04e8854c..00000000
--- a/docs/images/chapters/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/ecacec0eb2bbe72e14b9008d854fbb06.png b/docs/images/chapters/circles_cubic/ecacec0eb2bbe72e14b9008d854fbb06.png
deleted file mode 100644
index 53a76dc3..00000000
Binary files a/docs/images/chapters/circles_cubic/ecacec0eb2bbe72e14b9008d854fbb06.png and /dev/null differ
diff --git a/docs/images/chapters/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.svg b/docs/images/chapters/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.svg
deleted file mode 100644
index a5458b6c..00000000
--- a/docs/images/chapters/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/chapters/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.svg b/docs/images/chapters/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.svg
deleted file mode 100644
index 7de57979..00000000
--- a/docs/images/chapters/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/docs/images/snippets/circles/222d374252584ac37d967e3ea0f8f28b.ascii b/docs/images/snippets/circles/222d374252584ac37d967e3ea0f8f28b.ascii
new file mode 100644
index 00000000..dc81ed32
--- /dev/null
+++ b/docs/images/snippets/circles/222d374252584ac37d967e3ea0f8f28b.ascii
@@ -0,0 +1,34 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ d(θ)= |B - P |
+ t θ
+ ─
+ 2
+ ╭ 3 1 ╮ ╭ ╭ θ ╮ ╮
+ │ ─ + ─cos(θ) │ │ cos│ ─ │ │
+ = |│ 4 4 │ - │ ╰ 2 ╯ │|
+ │ 1 ╭ θ ╮ 1 │ │ ╭ θ ╮ │
+ │ ─tan│ ─ │ + ─sin(θ) │ │ sin│ ─ │ │
+ ╰ 2 ╰ 2 ╯ 4 ╯ ╰ ╰ 2 ╯ ╯
+ ╭ 3 1 ╭ θ ╮ ╮
+ │ ─ + ─cos(θ) - cos│ ─ │ │
+ = |│ 4 4 ╰ 2 ╯ │|
+ │ 1 ╭ θ ╮ 1 ╭ θ ╮ │
+ │ ─tan│ ─ │ + ─sin(θ) - sin│ ─ │ │
+ ╰ 2 ╰ 2 ╯ 4 ╰ 2 ╯ ╯
+ ╭ 4╭ θ ╮ ╮
+ │ 2sin │ ─ │ │
+ = |│ ╰ 4 ╯ │|
+ │ 1 ╭ θ ╮ 1 ╭ θ ╮ │
+ │ ─tan│ ─ │ + ─sin(θ) - sin│ ─ │ │
+ ╰ 2 ╰ 2 ╯ 4 ╰ 2 ╯ ╯
+ ┌─────────────────────────────────────────────────────┐
+ │╭ 4╭ θ ╮ ╮2 ╭ 1 ╭ θ ╮ 1 ╭ θ ╮ ╮2
+ = ││ 2sin │ ─ │ │ + │ ─tan│ ─ │ + ─sin(θ) - sin│ ─ │ │
+ ⟍│╰ ╰ 4 ╯ ╯ ╰ 2 ╰ 2 ╯ 4 ╰ 2 ╯ ╯
+
+ = we give this to Wolfram Alpha because why would we simplify this by hand?
+
+ 4╭ θ ╮ ╭ θ ╮
+ = 2sin │ ─ │ · |sec│ ─ │|
+ ╰ 4 ╯ ╰ 2 ╯
diff --git a/docs/images/snippets/circles/23d4cd81c759c5374773fae149207c5b.ascii b/docs/images/snippets/circles/23d4cd81c759c5374773fae149207c5b.ascii
new file mode 100644
index 00000000..b1c3f3a4
--- /dev/null
+++ b/docs/images/snippets/circles/23d4cd81c759c5374773fae149207c5b.ascii
@@ -0,0 +1,8 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ ╭ 1 2 cos(θ) ╮ ╭ 3 1 ╮
+ │ ─ + ─ + ────── │ │ ─ + ─cos(θ) │
+ B = │ 4 4 4 │ = │ 4 4 │
+ 1 │ 0 2k sin(θ) │ │ 1 ╭ θ ╮ 1 │
+ t=─ │ ─ + ── + ────── │ │ ─tan│ ─ │ + ─sin(θ) │
+ 2 ╰ 4 4 4 ╯ ╰ 2 ╰ 2 ╯ 4 ╯
diff --git a/docs/images/snippets/circles/474c72b5d1ad5c154d79312c15aee47a.ascii b/docs/images/snippets/circles/474c72b5d1ad5c154d79312c15aee47a.ascii
new file mode 100644
index 00000000..0b51cdd6
--- /dev/null
+++ b/docs/images/snippets/circles/474c72b5d1ad5c154d79312c15aee47a.ascii
@@ -0,0 +1,17 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ 4╭ θ ╮ ╭ θ ╮
+ = 2sin │ ─ │ · sec│ ─ │
+ ╰ 4 ╯ ╰ 2 ╯
+ 4╭ θ ╮ 1
+ = 2sin │ ─ │ · ────────
+ ╰ 4 ╯ ╭ θ ╮
+ cos│ ─ │
+ ╰ 2 ╯
+ 4╭ θ ╮
+ sin │ ─ │
+ ╰ 4 ╯
+ d(θ)= 2─────────
+ ╭ θ ╮
+ cos│ ─ │
+ ╰ 2 ╯
diff --git a/docs/images/snippets/circles/485d678b1d63ed7a4c7c8bb282467f02.ascii b/docs/images/snippets/circles/485d678b1d63ed7a4c7c8bb282467f02.ascii
new file mode 100644
index 00000000..679bc7c2
--- /dev/null
+++ b/docs/images/snippets/circles/485d678b1d63ed7a4c7c8bb282467f02.ascii
@@ -0,0 +1,6 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ P = S + k · (0, 1) = (1,0) + (0,k)
+ 2 relative to start
+ P = E + k · (E , -E ) = (cos(θ), sin(θ)) + k · (sin(θ), -cos(θ))
+ 2 relative to end y x
diff --git a/docs/images/snippets/circles/6e455a6733dbca47acc0a36e7e490ba6.ascii b/docs/images/snippets/circles/6e455a6733dbca47acc0a36e7e490ba6.ascii
new file mode 100644
index 00000000..a259346a
--- /dev/null
+++ b/docs/images/snippets/circles/6e455a6733dbca47acc0a36e7e490ba6.ascii
@@ -0,0 +1,9 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ ╭ ┌────────────────┐ ╮
+ │ │ ┌─────┐ │
+ │ │ │ 2 │
+ -1 │ ⟍│2 + ε - ⟍│2ε+ε │
+ θ = f(ε) = 4 · cos │ ─────────────────── │
+ │ ┌─┐ │
+ ╰ ⟍│2 ╯
diff --git a/docs/images/snippets/circles/9e19c65e23c32c802d2d77edb9812122.ascii b/docs/images/snippets/circles/9e19c65e23c32c802d2d77edb9812122.ascii
new file mode 100644
index 00000000..277f38bc
--- /dev/null
+++ b/docs/images/snippets/circles/9e19c65e23c32c802d2d77edb9812122.ascii
@@ -0,0 +1,6 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ P = (1, 0)
+ 1
+ P = (cos(θ), sin(θ))
+ 3
diff --git a/docs/images/snippets/circles/b5799015ebae3ab9b6712106b3b20ee6.ascii b/docs/images/snippets/circles/b5799015ebae3ab9b6712106b3b20ee6.ascii
new file mode 100644
index 00000000..207829d9
--- /dev/null
+++ b/docs/images/snippets/circles/b5799015ebae3ab9b6712106b3b20ee6.ascii
@@ -0,0 +1,8 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ P = (1,0) + (0,k) = 1
+ 2 x x
+ x
+ P = (cos(θ), sin(θ)) + k · (sin(θ), -cos(θ)) = cos(θ) + k · sin(θ)
+ 2 x x
+ x
diff --git a/docs/images/snippets/circles/cf8fc61992d2a75416894dee46ee5ffe.ascii b/docs/images/snippets/circles/cf8fc61992d2a75416894dee46ee5ffe.ascii
new file mode 100644
index 00000000..6049e647
--- /dev/null
+++ b/docs/images/snippets/circles/cf8fc61992d2a75416894dee46ee5ffe.ascii
@@ -0,0 +1,10 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ cos(θ) + k · sin(θ)= 1
+ k · sin(θ)= 1 - cos(θ)
+ 1 - cos(θ)
+ k= ──────────
+ sin(θ)
+ ╭ θ ╮
+ k= tan│ ─ │
+ ╰ 2 ╯
diff --git a/docs/images/snippets/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.ascii b/docs/images/snippets/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.ascii
new file mode 100644
index 00000000..1d1ab917
--- /dev/null
+++ b/docs/images/snippets/circles/e1fbb58c3730b2f4a378e39c8dc5e61f.ascii
@@ -0,0 +1,5 @@
+\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
+
+ ╭ ╭ θ ╮ ╮
+ P = │ 1, tan│ ─ │ │
+ 2 ╰ ╰ 2 ╯ ╯
diff --git a/docs/images/snippets/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.ascii b/docs/images/snippets/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.ascii
deleted file mode 100644
index d221682d..00000000
--- a/docs/images/snippets/circles_cubic/046e0bec7cc3d8a502b2f76b4722be2d.ascii
+++ /dev/null
@@ -1,8 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ 4
- │ \vecv = {C,A} = ─ · (B - C )
- ╡ x x 3 x x
- │ 4
- │ \vecv = {C,A} = ─ · (B - C )
- ╰ y y 3 y y
diff --git a/docs/images/snippets/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.ascii b/docs/images/snippets/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.ascii
deleted file mode 100644
index 4980b769..00000000
--- a/docs/images/snippets/circles_cubic/065efe85cac2f359ea4d5d4bae94da97.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- 4 ╭ φ ╮
- C = ┌ cos(φ) + f · sin(φ) ┐ , with f = ─ tan │ ─ │
- 2 └ sin(φ) - f · cos(φ) ┘ 3 ╰ 4 ╯
diff --git a/docs/images/snippets/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.ascii b/docs/images/snippets/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.ascii
deleted file mode 100644
index 7902bfe6..00000000
--- a/docs/images/snippets/circles_cubic/0b4c1e8f1f7a9c1292787f127ddb1624.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- C = S + a · \begin{pmatrix} 0
- 1
- 1 \end{pmatrix}
diff --git a/docs/images/snippets/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.ascii b/docs/images/snippets/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.ascii
deleted file mode 100644
index 116616fe..00000000
--- a/docs/images/snippets/circles_cubic/2ba4e0e2dbbdf3ea7dbd9cff3e049d0d.ascii
+++ /dev/null
@@ -1,8 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ ╭ φ ╮ 2╭ φ ╮
- │ B - C = cos│ ─ │ - cos │ ─ │
- ╡ x x ╰ 2 ╯ ╰ 2 ╯
- │ ╭ φ ╮ φ ╭ φ ╮ ╭ φ ╮ sin(φ)
- │ B - C = sin│ ─ │ - cos(─) · sin│ ─ │ = sin│ ─ │ - ──────
- ╰ y y ╰ 2 ╯ 2 ╰ 2 ╯ ╰ 2 ╯ 2
diff --git a/docs/images/snippets/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.ascii b/docs/images/snippets/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.ascii
deleted file mode 100644
index f0e6296a..00000000
--- a/docs/images/snippets/circles_cubic/2d9df7ddd2aa223a951016b93d9620c2.ascii
+++ /dev/null
@@ -1,4 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- S = (1, 0) , \ C = (1, 0.55228) , \ C = (0.55228 , 1) , \ E = (0, 1)
- 1 2
diff --git a/docs/images/snippets/circles_cubic/329dc34299d2fdb3c5f17828e3a23da0.ascii b/docs/images/snippets/circles_cubic/329dc34299d2fdb3c5f17828e3a23da0.ascii
deleted file mode 100644
index 62d79a9f..00000000
--- a/docs/images/snippets/circles_cubic/329dc34299d2fdb3c5f17828e3a23da0.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- 4 ╭ φ ╮
- C = ┌ cos(φ) + f · sin(φ) ┐, with f = ─ tan │ ─ │
- 2 └ sin(φ) - f · cos(φ) ┘ 3 ╰ 4 ╯
diff --git a/docs/images/snippets/circles_cubic/38b58b3c759b9bf340a3cf3de8bc599e.ascii b/docs/images/snippets/circles_cubic/38b58b3c759b9bf340a3cf3de8bc599e.ascii
deleted file mode 100644
index f8b6ebea..00000000
--- a/docs/images/snippets/circles_cubic/38b58b3c759b9bf340a3cf3de8bc599e.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- 4 ╭ φ ╮
- C = ┌ 1 ┐, with f = ─ tan │ ─ │
- 1 └ f ┘ 3 ╰ 4 ╯
diff --git a/docs/images/snippets/circles_cubic/459c037fb92685566d624f81a298e9c8.ascii b/docs/images/snippets/circles_cubic/459c037fb92685566d624f81a298e9c8.ascii
deleted file mode 100644
index 2c16d5aa..00000000
--- a/docs/images/snippets/circles_cubic/459c037fb92685566d624f81a298e9c8.ascii
+++ /dev/null
@@ -1,18 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- E' = -sin(φ) ,
- x
- E' = cos(φ) ,
- y
- ┌────────────────────┐
- │ 2 2
- ||E'|| = ⟍│(-sin(φ)) + cos (φ) = 1 ,
-
- ╭ E '
- │ x 4 ╭ φ ╮
- │ C x = E - C · ────── = cos(φ) + C · sin(φ) = cos(φ) + ─ tan │ ─ │ · sin(φ)
- ╡ 2 x 1y ||E'|| 1y 3 ╰ 4 ╯
- │ E '
- │ y 4 ╭ φ ╮
- │ C y = E - C · ────── = sin(φ) - C · cos(φ) = sin(φ) - ─ tan │ ─ │ · cos(φ)
- ╰ 2 y 1y ||E'|| 1y 3 ╰ 4 ╯
diff --git a/docs/images/snippets/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.ascii b/docs/images/snippets/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.ascii
deleted file mode 100644
index 1c87ca6d..00000000
--- a/docs/images/snippets/circles_cubic/496c0ee8945080a32bc02f78bc83ad43.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- 4 ╭ φ ╮
- C = ┌ 1 ┐ , with f = ─ tan │ ─ │
- 1 └ f ┘ 3 ╰ 4 ╯
diff --git a/docs/images/snippets/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.ascii b/docs/images/snippets/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.ascii
deleted file mode 100644
index c3569488..00000000
--- a/docs/images/snippets/circles_cubic/6a14e5a71dd9e0cefe158640eabb8696.ascii
+++ /dev/null
@@ -1,6 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ ┌─┐ ╮ ╭ ┌─┐ ╮
- │ ⟍│2 -1 │ │ ⟍│2 -1 │
- S = (1, 0) , \ C = │ 1, 4 ────── │ , \ C = │ 4 ────── , 1 │ , \ E = (0, 1)
- 1 ╰ 3 ╯ 2 ╰ 3 ╯
diff --git a/docs/images/snippets/circles_cubic/750e2c874fb58237608ebade1589fccc.ascii b/docs/images/snippets/circles_cubic/750e2c874fb58237608ebade1589fccc.ascii
deleted file mode 100644
index 73dc9973..00000000
--- a/docs/images/snippets/circles_cubic/750e2c874fb58237608ebade1589fccc.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ 1 ╮ 1 4
- ||A,C|| = d + d = d + d · ratio │ ─ │ = d + ─d = ─d
- 2 1 2 2 3 ╰ 2 ╯ 2 3 2 3 2
diff --git a/docs/images/snippets/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.ascii b/docs/images/snippets/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.ascii
deleted file mode 100644
index 32b2c66c..00000000
--- a/docs/images/snippets/circles_cubic/8b4e1d0a62380ed011f27c645ed13b28.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- φ φ
- P = cos(─) , \ P = sin(─)
- x 2 y 2
diff --git a/docs/images/snippets/circles_cubic/bc884416145a846cebddc8c5d13f147f.ascii b/docs/images/snippets/circles_cubic/bc884416145a846cebddc8c5d13f147f.ascii
deleted file mode 100644
index 6c2cd4ca..00000000
--- a/docs/images/snippets/circles_cubic/bc884416145a846cebddc8c5d13f147f.ascii
+++ /dev/null
@@ -1,11 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- φ
- l = cos(─) ,
- 2
- ╭ ╭ φ ╮ 2╭ φ ╮
- │ C = l · cos│ ─ │ = cos │ ─ │ ,
- ╡ x ╰ 2 ╯ ╰ 2 ╯
- │ ╭ φ ╮ φ ╭ φ ╮
- │ C = l · sin│ ─ │ = cos(─) · sin│ ─ │ ,
- ╰ y ╰ 2 ╯ 2 ╰ 2 ╯
diff --git a/docs/images/snippets/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.ascii b/docs/images/snippets/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.ascii
deleted file mode 100644
index d11e31d6..00000000
--- a/docs/images/snippets/circles_cubic/c509dc6fecd7992cb45a0b4d8f1bd001.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ 1 ╮ 1 4
- ||A,C|| = d + d = d + d · ratio │ ─ │ = d + ─d = ─d
- 2 1 2 2 3 ╰ 2 ╯ 2 3 2 3 2
diff --git a/docs/images/snippets/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.ascii b/docs/images/snippets/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.ascii
deleted file mode 100644
index 0ec63018..00000000
--- a/docs/images/snippets/circles_cubic/d28eb43a1b34befb7659dcdfb3a9e718.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- C = E + a · \begin{pmatrix} sin(φ)
- 2
- cos(φ) \end{pmatrix}
diff --git a/docs/images/snippets/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.ascii b/docs/images/snippets/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.ascii
deleted file mode 100644
index 46a53bf1..00000000
--- a/docs/images/snippets/circles_cubic/eeff3b36af960053cb4eb692abe36cd8.ascii
+++ /dev/null
@@ -1,5 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- S = \begin{pmatrix} 1
- 0 \end{pmatrix} , \ E = \begin{pmatrix} cos(φ)
- sin(φ) \end{pmatrix}
diff --git a/docs/images/snippets/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.ascii b/docs/images/snippets/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.ascii
deleted file mode 100644
index 1a851d76..00000000
--- a/docs/images/snippets/circles_cubic/fa5d308b0b50400fbae1411f390bc7ce.ascii
+++ /dev/null
@@ -1,12 +0,0 @@
-\setmainfont[Ligatures=TeX]TeX Gyre Pagella \setmathfontTeX Gyre Pagella Math
-
- ╭ C = 1
- │ 1x
- │ ┌───────────────┐
- │ │ 2 2
- ╡ │\vecv + \vecv
- │ d ⟍│ x y 4 ╭ φ ╮
- │ C = ──────── = ────────────────── = ─ tan │ ─ │
- │ 1y ╭ φ ╮ ╭ φ ╮ 3 ╰ 4 ╯
- │ sin│ ─ │ sin│ ─ │
- ╰ ╰ 2 ╯ ╰ 2 ╯
diff --git a/docs/index.html b/docs/index.html
index ecc8e873..57507732 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -38,7 +38,7 @@
-
+
@@ -167,25 +167,26 @@
sponsoring the site! I am more than happy to work with your finance department on sponsorship invoicing and recognition.
-
-
-
- Bitcoin donations:
-
-
- If you prefer to donate via Bitcoin, you can donate either directly to
- 3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
- or use the QR code on the right, if that's the kind of convenience you prefer =)
-
- For each pair, check whether their bounding boxes overlap.
-
-
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
-
If there is overlap, rerun all steps for this pair.
-
-
+
For each pair, check whether their bounding boxes overlap.
+
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
+
If there is overlap, rerun all steps for this pair.
Once the sub-curves we form are so small that they effectively occupy sub-pixel areas, we consider an intersection found, noting that we
might have a cluster of multiple intersections at the sub-pixel level, out of which we pick one to act as "found" t value
@@ -9577,13 +9574,13 @@ radialError(radius, points[]):
We start with low=0, mid=0.5 and high=1
-
- That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
-
-
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
-
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
-
-
+
That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
+
+
+
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
+
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
+
+
We keep doing this over and over until we have two arcs, in sequence, of which the first arc is good, and the second arc is bad. When we
find that pair, we've found the boundary between a good approximation and a bad approximation, and we pick the good arc.
diff --git a/docs/ja-JP/index.html b/docs/ja-JP/index.html
index cfcae011..ee6426db 100644
--- a/docs/ja-JP/index.html
+++ b/docs/ja-JP/index.html
@@ -41,7 +41,7 @@
-
+
@@ -170,25 +170,26 @@
sponsoring the site! I am more than happy to work with your finance department on sponsorship invoicing and recognition.
-
-
-
- Bitcoin donations:
-
-
- If you prefer to donate via Bitcoin, you can donate either directly to
- 3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
- or use the QR code on the right, if that's the kind of convenience you prefer =)
-
- For each pair, check whether their bounding boxes overlap.
-
-
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
-
If there is overlap, rerun all steps for this pair.
-
-
+
For each pair, check whether their bounding boxes overlap.
+
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
+
If there is overlap, rerun all steps for this pair.
Once the sub-curves we form are so small that they effectively occupy sub-pixel areas, we consider an intersection found, noting that we
might have a cluster of multiple intersections at the sub-pixel level, out of which we pick one to act as "found" t value
@@ -9795,13 +9792,13 @@ radialError(radius, points[]):
We start with low=0, mid=0.5 and high=1
-
- That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
-
-
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
-
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
-
-
+
That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
+
+
+
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
+
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
+
+
We keep doing this over and over until we have two arcs, in sequence, of which the first arc is good, and the second arc is bad. When we
find that pair, we've found the boundary between a good approximation and a bad approximation, and we pick the good arc.
diff --git a/docs/news/2020-09-18.html b/docs/news/2020-09-18.html
index 4dc411f5..97cdc80c 100644
--- a/docs/news/2020-09-18.html
+++ b/docs/news/2020-09-18.html
@@ -33,8 +33,8 @@
-
-
+
+
diff --git a/docs/news/2020-11-22.html b/docs/news/2020-11-22.html
index 3eda705f..865a39ce 100644
--- a/docs/news/2020-11-22.html
+++ b/docs/news/2020-11-22.html
@@ -33,8 +33,8 @@
-
-
+
+
diff --git a/docs/news/index.html b/docs/news/index.html
index 9982e13a..4ab842ed 100644
--- a/docs/news/index.html
+++ b/docs/news/index.html
@@ -33,7 +33,7 @@
-
+
diff --git a/docs/news/rss.xml b/docs/news/rss.xml
index 6db19b96..0fc958ad 100644
--- a/docs/news/rss.xml
+++ b/docs/news/rss.xml
@@ -6,7 +6,7 @@
News updates for the primer on Bézier Curves by Pomaxen-GB
- Sat Jun 05 2021 23:23:15 +00:00
+ Mon Jun 07 2021 08:09:41 +00:00https://pomax.github.io/bezierinfo/images/og-image.pngA Primer on Bézier Curves
@@ -23,7 +23,7 @@
<p>— <a href="https://twitter.com/TheRealPomax">Pomax</a></p>
- Sun Nov 22 2020 00:00:00 +00:00
+ Sat Nov 21 2020 16:00:00 +00:002020-11-22.htmlRewriting the tech stack
@@ -119,7 +119,7 @@ draw() {
<p>— <a href="https://twitter.com/TheRealPomax">Pomax</a></p>
- Fri Sep 18 2020 00:00:00 +00:00
+ Thu Sep 17 2020 17:00:00 +00:002020-09-18.html
diff --git a/docs/ru-RU/index.html b/docs/ru-RU/index.html
index bf102fc0..61d4050e 100644
--- a/docs/ru-RU/index.html
+++ b/docs/ru-RU/index.html
@@ -34,7 +34,7 @@
-
+
@@ -157,25 +157,26 @@
счастливой жизни этого ресурса.
-
-
-
- Bitcoin donations:
-
-
- If you prefer to donate via Bitcoin, you can donate either directly to
- 3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
- or use the QR code on the right, if that's the kind of convenience you prefer =)
-
- For each pair, check whether their bounding boxes overlap.
-
-
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
-
If there is overlap, rerun all steps for this pair.
-
-
+
For each pair, check whether their bounding boxes overlap.
+
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
+
If there is overlap, rerun all steps for this pair.
Once the sub-curves we form are so small that they effectively occupy sub-pixel areas, we consider an intersection found, noting that we
might have a cluster of multiple intersections at the sub-pixel level, out of which we pick one to act as "found" t value
@@ -9952,13 +9949,13 @@ radialError(radius, points[]):
We start with low=0, mid=0.5 and high=1
-
- That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
-
-
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
-
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
-
-
+
That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
+
+
+
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
+
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
+
+
We keep doing this over and over until we have two arcs, in sequence, of which the first arc is good, and the second arc is bad. When we
find that pair, we've found the boundary between a good approximation and a bad approximation, and we pick the good arc.
diff --git a/docs/uk-UA/index.html b/docs/uk-UA/index.html
index 606a37f8..f6696765 100644
--- a/docs/uk-UA/index.html
+++ b/docs/uk-UA/index.html
@@ -39,7 +39,7 @@
-
+
@@ -161,25 +161,26 @@
багато буде потрібно. Тому, якщо можете допомогти з кавою, то можете бути впевнені, що цей ресурс буде підтримуватися ще довго!
-
-
-
- Bitcoin donations:
-
-
- If you prefer to donate via Bitcoin, you can donate either directly to
- 3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
- or use the QR code on the right, if that's the kind of convenience you prefer =)
-
- For each pair, check whether their bounding boxes overlap.
-
-
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
-
If there is overlap, rerun all steps for this pair.
-
-
+
For each pair, check whether their bounding boxes overlap.
+
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
+
If there is overlap, rerun all steps for this pair.
Once the sub-curves we form are so small that they effectively occupy sub-pixel areas, we consider an intersection found, noting that we
might have a cluster of multiple intersections at the sub-pixel level, out of which we pick one to act as "found" t value
@@ -9926,13 +9923,13 @@ radialError(radius, points[]):
We start with low=0, mid=0.5 and high=1
-
- That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
-
-
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
-
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
-
-
+
That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
+
+
+
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
+
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
+
+
We keep doing this over and over until we have two arcs, in sequence, of which the first arc is good, and the second arc is bad. When we
find that pair, we've found the boundary between a good approximation and a bad approximation, and we pick the good arc.
diff --git a/docs/zh-CN/index.html b/docs/zh-CN/index.html
index cc71ebd3..48f35f8b 100644
--- a/docs/zh-CN/index.html
+++ b/docs/zh-CN/index.html
@@ -41,7 +41,7 @@
-
+
@@ -170,25 +170,26 @@
sponsoring the site! I am more than happy to work with your finance department on sponsorship invoicing and recognition.
-
-
-
- Bitcoin donations:
-
-
- If you prefer to donate via Bitcoin, you can donate either directly to
- 3GY1HbQ2cH9V4xBLnRYdEfc42Nd1ZyjLZu
- or use the QR code on the right, if that's the kind of convenience you prefer =)
-
- For each pair, check whether their bounding boxes overlap.
-
-
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
-
If there is overlap, rerun all steps for this pair.
-
-
+
For each pair, check whether their bounding boxes overlap.
+
If their bounding boxes do not overlap, discard the pair, as there is no intersection between this pair of curves.
+
If there is overlap, rerun all steps for this pair.
Once the sub-curves we form are so small that they effectively occupy sub-pixel areas, we consider an intersection found, noting that we
might have a cluster of multiple intersections at the sub-pixel level, out of which we pick one to act as "found" t value
@@ -9771,13 +9768,13 @@ radialError(radius, points[]):
We start with low=0, mid=0.5 and high=1
-
- That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
-
-
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
-
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
-
-
+
That'll fail, so we retry with the interval halved: {0, 0.25, 0.5}
+
+
+
If that arc's good, we move back up by half distance: {0, 0.375, 0.75}.
+
However, if the arc was still bad, we move down by half the distance: {0, 0.125, 0.25}.
+
+
We keep doing this over and over until we have two arcs, in sequence, of which the first arc is good, and the second arc is bad. When we
find that pair, we've found the boundary between a good approximation and a bad approximation, and we pick the good arc.