diff --git a/cn/gallery/data.json b/cn/gallery/data.json
index 858cbe22..64977b1b 100755
--- a/cn/gallery/data.json
+++ b/cn/gallery/data.json
@@ -502,6 +502,14 @@
],
"title": "反射式单色仪",
"description": "
这是一个反射式单色仪的模拟,其透过反射式衍射光栅与聚焦处的出射口,从多波长混合的光之中取得窄频宽的光。
"
+ },
+ {
+ "id": "solar-eclipses",
+ "contributors": [
+ "Yi-Ting Tu"
+ ],
+ "title": "日食",
+ "description": "本模拟演示了不同类型的日食。右上方的图中,月球的影子遮蔽了太阳,在中心产生了日全食,周围地区则是日偏食。右下方的图为日环食,其中由于月球距离地球较远,无法完全遮蔽太阳,在中心留下一个明亮的环(本二维模拟器中,这个“环”为阳光只来自太阳的最上方与最下方的部分),而周围地区也是日偏食。
"
}
]
}
diff --git a/cn/gallery/index.html b/cn/gallery/index.html
index 78b83421..908edf2c 100644
--- a/cn/gallery/index.html
+++ b/cn/gallery/index.html
@@ -595,6 +595,13 @@ 其他
James Garrard
+
+
+
+
@@ -605,7 +612,7 @@ 其他
语言:简体中文
diff --git a/cn/gallery/solar-eclipses-thumbnail.png b/cn/gallery/solar-eclipses-thumbnail.png
new file mode 100644
index 00000000..f8f41047
Binary files /dev/null and b/cn/gallery/solar-eclipses-thumbnail.png differ
diff --git a/cn/gallery/solar-eclipses.html b/cn/gallery/solar-eclipses.html
new file mode 100644
index 00000000..a7d62fb0
--- /dev/null
+++ b/cn/gallery/solar-eclipses.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+日食 - 射线光学模拟
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+日食
+
+贡献者:Yi-Ting Tu
+
+
+
本模拟演示了不同类型的日食。右上方的图中,月球的影子遮蔽了太阳,在中心产生了日全食,周围地区则是日偏食。右下方的图为日环食,其中由于月球距离地球较远,无法完全遮蔽太阳,在中心留下一个明亮的环(本二维模拟器中,这个“环”为阳光只来自太阳的最上方与最下方的部分),而周围地区也是日偏食。
+
+
+在模拟器中打开
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/cn/gallery/solar-eclipses.json b/cn/gallery/solar-eclipses.json
new file mode 100644
index 00000000..626f7d3d
--- /dev/null
+++ b/cn/gallery/solar-eclipses.json
@@ -0,0 +1,266 @@
+{
+ "version": 5,
+ "name": "日食",
+ "modules": {
+ "CircleSource": {
+ "numPoints": 1,
+ "params": [
+ "r=0:1:500:100",
+ "N=1:1:4999:10",
+ "brightness=0.01:0.01:10:1"
+ ],
+ "objs": [
+ {
+ "for": "theta=0:2pi/N:2pi-0.0001",
+ "type": "AngleSource",
+ "p1": {
+ "x": "`x_1+r*cos(theta)`",
+ "y": "`y_1+r*sin(theta)`"
+ },
+ "p2": {
+ "x": "`x_1+(r+1)*cos(theta)`",
+ "y": "`y_1+(r+1)*sin(theta)`"
+ },
+ "brightness": "`brightness/N`",
+ "emisAngle": 180
+ }
+ ],
+ "maxLoopLength": 5000
+ }
+ },
+ "objs": [
+ {
+ "type": "ModuleObj",
+ "module": "CircleSource",
+ "points": [
+ {
+ "x": 383,
+ "y": 405
+ }
+ ],
+ "params": {
+ "r": 236,
+ "N": 1000,
+ "brightness": 10
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1095,
+ "y": 234
+ },
+ "p2": {
+ "x": 1110,
+ "y": 251
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1291,
+ "y": 190
+ },
+ "p2": {
+ "x": 1406,
+ "y": 248
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1376.6666666666667,
+ "y": 415.6666666666667,
+ "text": "(非按比例)",
+ "alignment": "right"
+ },
+ {
+ "type": "TextLabel",
+ "x": 385,
+ "y": 439,
+ "text": "太阳",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1043,
+ "y": 631,
+ "text": "月亮",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 591,
+ "text": "日偏食",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 236
+ },
+ "p2": {
+ "x": 1170,
+ "y": 216
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1214,
+ "y": 152
+ },
+ "p2": {
+ "x": 1165,
+ "y": 193
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1226,
+ "y": 163
+ },
+ "p2": {
+ "x": 1180,
+ "y": 242
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1196,
+ "y": 704,
+ "text": "日环食",
+ "fontSize": 16
+ },
+ {
+ "type": "TextLabel",
+ "x": 1283,
+ "y": 666,
+ "text": "地球",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1280,
+ "y": 639
+ },
+ "p2": {
+ "x": 1395,
+ "y": 697
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1294,
+ "y": 215,
+ "text": "地球",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1044,
+ "y": 581
+ },
+ "p2": {
+ "x": 1059,
+ "y": 598
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1092,
+ "y": 280,
+ "text": "月亮",
+ "alignment": "center"
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 587
+ },
+ "p2": {
+ "x": 1161,
+ "y": 653
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1217,
+ "y": 577
+ },
+ "p2": {
+ "x": 1175,
+ "y": 578
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1221,
+ "y": 154,
+ "text": "日偏食",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1198,
+ "y": 676
+ },
+ "p2": {
+ "x": 1159,
+ "y": 616
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 253,
+ "text": "日全食",
+ "fontSize": 16
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 95.99999999999994,
+ "y": 17.190476190476197
+ },
+ "p4": {
+ "x": 1456,
+ "y": 815.5238095238095
+ },
+ "width": 1140
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 1027.6666666666667,
+ "y": -11.142857142857139
+ },
+ "p4": {
+ "x": 1427.6666666666667,
+ "y": 388.8571428571429
+ },
+ "width": 500
+ }
+ ],
+ "width": 1200,
+ "height": 700,
+ "rayModeDensity": 0.4263477291781528,
+ "origin": {
+ "x": 218.1428571428571,
+ "y": 135.54761904761904
+ },
+ "scale": 0.5
+}
\ No newline at end of file
diff --git a/cn/gallery/solar-eclipses.png b/cn/gallery/solar-eclipses.png
new file mode 100644
index 00000000..46382ee9
Binary files /dev/null and b/cn/gallery/solar-eclipses.png differ
diff --git a/gallery/data.json b/gallery/data.json
index ed1b2663..619bc66f 100644
--- a/gallery/data.json
+++ b/gallery/data.json
@@ -502,6 +502,14 @@
],
"title": "Reflecting Monochromator",
"description": "This is a simulation of a reflecting monochromator, which uses a reflective diffraction grating and a slit at the focus to get narrow band wavelengths from composite light.
"
+ },
+ {
+ "id": "solar-eclipses",
+ "contributors": [
+ "Yi-Ting Tu"
+ ],
+ "title": "Solar Eclipses",
+ "description": "This simulation demonstrates the different types of solar eclipses. The top-right diagram depicts a solar eclipse where the Moon's shadow covers the Sun, resulting in a total eclipse at the center and a partial eclipse in surrounding areas. The bottom-right diagram illustrates an annular eclipse where the Moon is too far from Earth to completely cover the Sun, leaving a bright ring at the center (in this 2D simulator, the \"ring\" is demonstrated by sunlight coming only from the upper and the lower part of the sun) and also a partial eclipse in surrounding areas.
"
}
]
}
diff --git a/gallery/index.html b/gallery/index.html
index ddad1c4f..967bb145 100644
--- a/gallery/index.html
+++ b/gallery/index.html
@@ -595,6 +595,13 @@ Miscellaneous
James Garrard
+
+
+
+
Solar Eclipses
+
Yi-Ting Tu
+
+
@@ -606,7 +613,7 @@ Miscellaneous
Language: English
diff --git a/gallery/solar-eclipses-thumbnail.png b/gallery/solar-eclipses-thumbnail.png
new file mode 100644
index 00000000..1374edc5
Binary files /dev/null and b/gallery/solar-eclipses-thumbnail.png differ
diff --git a/gallery/solar-eclipses.html b/gallery/solar-eclipses.html
new file mode 100644
index 00000000..2ba529d6
--- /dev/null
+++ b/gallery/solar-eclipses.html
@@ -0,0 +1,73 @@
+
+
+
+
+
+
+Solar Eclipses - Ray Optics Simulation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Solar Eclipses
+
+Contributor: Yi-Ting Tu
+
+
+
This simulation demonstrates the different types of solar eclipses. The top-right diagram depicts a solar eclipse where the Moon's shadow covers the Sun, resulting in a total eclipse at the center and a partial eclipse in surrounding areas. The bottom-right diagram illustrates an annular eclipse where the Moon is too far from Earth to completely cover the Sun, leaving a bright ring at the center (in this 2D simulator, the "ring" is demonstrated by sunlight coming only from the upper and the lower part of the sun) and also a partial eclipse in surrounding areas.
+
+
+Open in Simulator
+
+
+
+
+
+
+
+ Language: English
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/gallery/solar-eclipses.json b/gallery/solar-eclipses.json
new file mode 100644
index 00000000..c831c7f0
--- /dev/null
+++ b/gallery/solar-eclipses.json
@@ -0,0 +1,266 @@
+{
+ "version": 5,
+ "name": "Solar eclipses",
+ "modules": {
+ "CircleSource": {
+ "numPoints": 1,
+ "params": [
+ "r=0:1:500:100",
+ "N=1:1:4999:10",
+ "brightness=0.01:0.01:10:1"
+ ],
+ "objs": [
+ {
+ "for": "theta=0:2pi/N:2pi-0.0001",
+ "type": "AngleSource",
+ "p1": {
+ "x": "`x_1+r*cos(theta)`",
+ "y": "`y_1+r*sin(theta)`"
+ },
+ "p2": {
+ "x": "`x_1+(r+1)*cos(theta)`",
+ "y": "`y_1+(r+1)*sin(theta)`"
+ },
+ "brightness": "`brightness/N`",
+ "emisAngle": 180
+ }
+ ],
+ "maxLoopLength": 5000
+ }
+ },
+ "objs": [
+ {
+ "type": "ModuleObj",
+ "module": "CircleSource",
+ "points": [
+ {
+ "x": 383,
+ "y": 405
+ }
+ ],
+ "params": {
+ "r": 236,
+ "N": 1000,
+ "brightness": 10
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1095,
+ "y": 234
+ },
+ "p2": {
+ "x": 1110,
+ "y": 251
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1291,
+ "y": 190
+ },
+ "p2": {
+ "x": 1406,
+ "y": 248
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1376.6666666666667,
+ "y": 415.6666666666667,
+ "text": "(Not to scale)",
+ "alignment": "right"
+ },
+ {
+ "type": "TextLabel",
+ "x": 385,
+ "y": 439,
+ "text": "Sun",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1043,
+ "y": 631,
+ "text": "Moon",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 591,
+ "text": "Partial eclipse",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 236
+ },
+ "p2": {
+ "x": 1170,
+ "y": 216
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1214,
+ "y": 152
+ },
+ "p2": {
+ "x": 1165,
+ "y": 193
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1226,
+ "y": 163
+ },
+ "p2": {
+ "x": 1180,
+ "y": 242
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1196,
+ "y": 704,
+ "text": "Annular eclipse",
+ "fontSize": 16
+ },
+ {
+ "type": "TextLabel",
+ "x": 1283,
+ "y": 666,
+ "text": "Earth",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1280,
+ "y": 639
+ },
+ "p2": {
+ "x": 1395,
+ "y": 697
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1294,
+ "y": 215,
+ "text": "Earth",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1044,
+ "y": 581
+ },
+ "p2": {
+ "x": 1059,
+ "y": 598
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1092,
+ "y": 280,
+ "text": "Moon",
+ "alignment": "center"
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 587
+ },
+ "p2": {
+ "x": 1161,
+ "y": 653
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1217,
+ "y": 577
+ },
+ "p2": {
+ "x": 1175,
+ "y": 578
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1221,
+ "y": 154,
+ "text": "Partial eclipse",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1198,
+ "y": 676
+ },
+ "p2": {
+ "x": 1159,
+ "y": 616
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 253,
+ "text": "Total eclipse",
+ "fontSize": 16
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 95.99999999999994,
+ "y": 17.190476190476197
+ },
+ "p4": {
+ "x": 1456,
+ "y": 815.5238095238095
+ },
+ "width": 1140
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 1027.6666666666667,
+ "y": -11.142857142857139
+ },
+ "p4": {
+ "x": 1427.6666666666667,
+ "y": 388.8571428571429
+ },
+ "width": 500
+ }
+ ],
+ "width": 1200,
+ "height": 700,
+ "rayModeDensity": 0.4263477291781528,
+ "origin": {
+ "x": 63.40000000000007,
+ "y": 111.68571428571428
+ },
+ "scale": 0.6
+}
\ No newline at end of file
diff --git a/gallery/solar-eclipses.png b/gallery/solar-eclipses.png
new file mode 100644
index 00000000..756ac754
Binary files /dev/null and b/gallery/solar-eclipses.png differ
diff --git a/pl/gallery/data.json b/pl/gallery/data.json
index 778fc5bf..75499820 100755
--- a/pl/gallery/data.json
+++ b/pl/gallery/data.json
@@ -502,6 +502,14 @@
],
"title": "Reflecting Monochromator",
"description": "This is a simulation of a reflecting monochromator, which uses a reflective diffraction grating and a slit at the focus to get narrow band wavelengths from composite light.
"
+ },
+ {
+ "id": "solar-eclipses",
+ "contributors": [
+ "Yi-Ting Tu"
+ ],
+ "title": "Solar Eclipses",
+ "description": "This simulation demonstrates the different types of solar eclipses. The top-right diagram depicts a solar eclipse where the Moon's shadow covers the Sun, resulting in a total eclipse at the center and a partial eclipse in surrounding areas. The bottom-right diagram illustrates an annular eclipse where the Moon is too far from Earth to completely cover the Sun, leaving a bright ring at the center (in this 2D simulator, the \"ring\" is demonstrated by sunlight coming only from the upper and the lower part of the sun) and also a partial eclipse in surrounding areas.
"
}
]
}
diff --git a/pl/gallery/index.html b/pl/gallery/index.html
index 366c3fdd..b8354d8d 100755
--- a/pl/gallery/index.html
+++ b/pl/gallery/index.html
@@ -595,6 +595,13 @@ Różne
James Garrard
+
+
+
+
Solar Eclipses
+
Yi-Ting Tu
+
+
@@ -605,7 +612,7 @@ Różne
Język: polski
diff --git a/tw/gallery/data.json b/tw/gallery/data.json
index f9fcc499..95e494c0 100755
--- a/tw/gallery/data.json
+++ b/tw/gallery/data.json
@@ -502,6 +502,14 @@
],
"title": "反射式單色儀",
"description": "這是一個反射式單色儀的模擬,其透過反射式繞射光柵與聚焦處的出射口,從多波長混合的光之中取得窄頻寬的光。
"
+ },
+ {
+ "id": "solar-eclipses",
+ "contributors": [
+ "Yi-Ting Tu"
+ ],
+ "title": "日食",
+ "description": "本模擬演示了不同類型的日食。右上方的圖中,月球的影子遮蔽了太陽,在中心產生了日全食,周圍地區則是日偏食。右下方的圖為日環食,其中由於月球距離地球較遠,無法完全遮蔽太陽,在中心留下一個明亮的環(本二維模擬器中,這個「環」為陽光只來自太陽的最上方與最下方的部分),而周圍地區也是日偏食。
"
}
]
}
diff --git a/tw/gallery/index.html b/tw/gallery/index.html
index 0fcba5f9..014a30fe 100644
--- a/tw/gallery/index.html
+++ b/tw/gallery/index.html
@@ -595,6 +595,13 @@ 其他
James Garrard
+
+
+
+
@@ -605,7 +612,7 @@ 其他
語言:正體中文
diff --git a/tw/gallery/solar-eclipses-thumbnail.png b/tw/gallery/solar-eclipses-thumbnail.png
new file mode 100644
index 00000000..f8f41047
Binary files /dev/null and b/tw/gallery/solar-eclipses-thumbnail.png differ
diff --git a/tw/gallery/solar-eclipses.html b/tw/gallery/solar-eclipses.html
new file mode 100644
index 00000000..17b61624
--- /dev/null
+++ b/tw/gallery/solar-eclipses.html
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+日食 - 線光學模擬
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+日食
+
+貢獻者:Yi-Ting Tu
+
+
+
本模擬演示了不同類型的日食。右上方的圖中,月球的影子遮蔽了太陽,在中心產生了日全食,周圍地區則是日偏食。右下方的圖為日環食,其中由於月球距離地球較遠,無法完全遮蔽太陽,在中心留下一個明亮的環(本二維模擬器中,這個「環」為陽光只來自太陽的最上方與最下方的部分),而周圍地區也是日偏食。
+
+
+在模擬器中開啟
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/tw/gallery/solar-eclipses.json b/tw/gallery/solar-eclipses.json
new file mode 100644
index 00000000..2e974d94
--- /dev/null
+++ b/tw/gallery/solar-eclipses.json
@@ -0,0 +1,266 @@
+{
+ "version": 5,
+ "name": "日食",
+ "modules": {
+ "CircleSource": {
+ "numPoints": 1,
+ "params": [
+ "r=0:1:500:100",
+ "N=1:1:4999:10",
+ "brightness=0.01:0.01:10:1"
+ ],
+ "objs": [
+ {
+ "for": "theta=0:2pi/N:2pi-0.0001",
+ "type": "AngleSource",
+ "p1": {
+ "x": "`x_1+r*cos(theta)`",
+ "y": "`y_1+r*sin(theta)`"
+ },
+ "p2": {
+ "x": "`x_1+(r+1)*cos(theta)`",
+ "y": "`y_1+(r+1)*sin(theta)`"
+ },
+ "brightness": "`brightness/N`",
+ "emisAngle": 180
+ }
+ ],
+ "maxLoopLength": 5000
+ }
+ },
+ "objs": [
+ {
+ "type": "ModuleObj",
+ "module": "CircleSource",
+ "points": [
+ {
+ "x": 383,
+ "y": 405
+ }
+ ],
+ "params": {
+ "r": 236,
+ "N": 1000,
+ "brightness": 10
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1095,
+ "y": 234
+ },
+ "p2": {
+ "x": 1110,
+ "y": 251
+ }
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1291,
+ "y": 190
+ },
+ "p2": {
+ "x": 1406,
+ "y": 248
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1376.6666666666667,
+ "y": 415.6666666666667,
+ "text": "(非按比例)",
+ "alignment": "right"
+ },
+ {
+ "type": "TextLabel",
+ "x": 385,
+ "y": 439,
+ "text": "太陽",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1043,
+ "y": 631,
+ "text": "月亮",
+ "alignment": "center"
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 591,
+ "text": "日偏食",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 236
+ },
+ "p2": {
+ "x": 1170,
+ "y": 216
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1214,
+ "y": 152
+ },
+ "p2": {
+ "x": 1165,
+ "y": 193
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1226,
+ "y": 163
+ },
+ "p2": {
+ "x": 1180,
+ "y": 242
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1196,
+ "y": 704,
+ "text": "日環食",
+ "fontSize": 16
+ },
+ {
+ "type": "TextLabel",
+ "x": 1283,
+ "y": 666,
+ "text": "地球",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1280,
+ "y": 639
+ },
+ "p2": {
+ "x": 1395,
+ "y": 697
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1294,
+ "y": 215,
+ "text": "地球",
+ "alignment": "center"
+ },
+ {
+ "type": "CircleBlocker",
+ "p1": {
+ "x": 1044,
+ "y": 581
+ },
+ "p2": {
+ "x": 1059,
+ "y": 598
+ }
+ },
+ {
+ "type": "TextLabel",
+ "x": 1092,
+ "y": 280,
+ "text": "月亮",
+ "alignment": "center"
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1221,
+ "y": 587
+ },
+ "p2": {
+ "x": 1161,
+ "y": 653
+ },
+ "arrow": true
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1217,
+ "y": 577
+ },
+ "p2": {
+ "x": 1175,
+ "y": 578
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1221,
+ "y": 154,
+ "text": "日偏食",
+ "fontSize": 16
+ },
+ {
+ "type": "LineArrow",
+ "p1": {
+ "x": 1198,
+ "y": 676
+ },
+ "p2": {
+ "x": 1159,
+ "y": 616
+ },
+ "arrow": true
+ },
+ {
+ "type": "TextLabel",
+ "x": 1226,
+ "y": 253,
+ "text": "日全食",
+ "fontSize": 16
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 95.99999999999994,
+ "y": 17.190476190476197
+ },
+ "p4": {
+ "x": 1456,
+ "y": 815.5238095238095
+ },
+ "width": 1140
+ },
+ {
+ "type": "CropBox",
+ "p1": {
+ "x": 1027.6666666666667,
+ "y": -11.142857142857139
+ },
+ "p4": {
+ "x": 1427.6666666666667,
+ "y": 388.8571428571429
+ },
+ "width": 500
+ }
+ ],
+ "width": 1200,
+ "height": 700,
+ "rayModeDensity": 0.4263477291781528,
+ "origin": {
+ "x": 218.1428571428571,
+ "y": 135.54761904761904
+ },
+ "scale": 0.5
+}
\ No newline at end of file
diff --git a/tw/gallery/solar-eclipses.png b/tw/gallery/solar-eclipses.png
new file mode 100644
index 00000000..b60114d5
Binary files /dev/null and b/tw/gallery/solar-eclipses.png differ