作图纸 · 短片

0:00 / 2:1701七个元素

原神七元素图标拆解

按对称拆解《原神》的七枚元素图标

一支两分多钟的技术制图短片,按对称拆解《原神》的七枚元素图标。一颗橙色火花依照一段 TikZ 代码逐行落笔,先按游戏里的顺序画出一排七枚,再从对称最多的到最少的,逐一画出每一枚可以怎样构成:冰有 12 种对称,只画十二分之一,其余由转动与镜像得到;雷有三种转动、不能翻面,九个圆画一遍、再转两次,外圆半径取 φ² 时,其中三个半径接近 φ、1、1/φ;岩转半圈重合;草和风各有一面镜子,但草用圆规画,风用控制点画;水除了「不动」没有别的对称,四个主圆的圆心却在一条线上;火也只有「不动」。镜头拉远,七枚按顺序排好:12、3、2、2、2、1、1。图标依照同人绘制的矢量图拟合,并非描摹;这是对图形的分析,不是 HoYoverse 官方的作图过程。每一帧都在浏览器里依照这段代码实时绘制;配乐也由代码依据同一份作图计划生成。

Constructed Mark
速度
96 BPM · 55 小节
画面
作图引擎 · WebGL
程序
一段 TikZ 代码
图标
依同人矢量图拟合,并非描摹
声音
原创配乐,依据作图计划合成

章节9

TikZ 代码124 条语句

本片由这段 TikZ 代码绘成,与 Constructed Mark 共用作图引擎:每条语句都在剧本指定的小节开始绘制,每一枚图标各占一个 scope,其中的圆与曲线依同人矢量图拟合。复制时会附上一行 \tikzset,用于声明本图专用的键,粘贴到加载了 TikZ 宏包的 LaTeX 文档中即可编译。

% title: 原神七元素% 七枚元素图标,依同人矢量图(314 单位见方)拟合,并非描摹;% 按对称排列:有几种不同的转动或翻面能让它与自身重合\begin{tikzpicture} % 七枚,按游戏里的顺序\begin{scope}[shift={(12.9,7.5)},scale=0.4]  \fill (-0.046,2.854) .. controls (-0.046,2.854) and (-0.046,2.397) .. (-0.313,2.055) .. controls (-0.58,1.714) and (-0.805,1.509) .. (-0.805,1.154) .. controls (-0.805,0.799) and (-0.545,0.519) .. (0.151,0.232) .. controls (0.848,-0.055) and (1.211,-0.478) .. (1.211,-0.874) .. controls (1.211,-1.27) and (0.931,-1.817) .. (0.005,-1.81) .. controls (-0.91,-1.666) and (-0.462,-0.888) .. (-0.217,-0.806) .. controls (-0.217,-0.806) and (-0.926,-0.745) .. (-0.926,-1.251) .. controls (-0.926,-1.756) and (-0.257,-1.919) .. (0.135,-1.919) .. controls (0.528,-1.919) and (1.73,-1.687) .. (1.73,-0.663) .. controls (1.73,-0.26) and (1.573,-0.034) .. (1.573,-0.034) .. controls (1.573,-0.034) and (2.168,-0.264) .. (2.098,-0.847) .. controls (2.01,-1.583) and (0.945,-1.635) .. (0.049,-2.487) .. controls (0.049,-2.487) and (-0.19,-2.208) .. (-1.009,-1.803) .. controls (-1.477,-1.571) and (-2.042,-1.373) .. (-2.026,-0.684) .. controls (-2.013,-0.11) and (-1.405,0.123) .. (-1.405,0.123) .. controls (-1.405,0.123) and (-2.429,-0.929) .. (-0.961,-1.625) .. controls (-0.961,-1.625) and (-1.91,-0.15) .. (-0.039,0.171) .. controls (-0.039,0.171) and (-1.056,0.43) .. (-1.097,1.304) .. controls (-1.097,1.304) and (-1.268,0.812) .. (-1.514,0.553) .. controls (-1.76,0.294) and (-2.373,-0.317) .. (-2.291,-1.007) .. controls (-2.209,-1.696) and (-0.599,-2.083) .. (0.043,-2.855) .. controls (0.043,-2.855) and (0.562,-2.316) .. (1.088,-2.063) .. controls (1.613,-1.81) and (3.368,-0.998) .. (1.355,0.539) .. controls (1.355,0.539) and (1.047,0.744) .. (1.02,1.311) arc (137.30:179.50:1.03) .. controls (0.747,0.197) and (1.048,0.272) .. (1.081,-0.123) .. controls (1.081,-0.123) and (0.487,0.382) .. (0.494,0.778) .. controls (0.501,1.174) and (0.651,1.597) .. (0.651,1.597) .. controls (0.651,1.597) and (-0.38,1.126) .. (0.132,0.382) .. controls (0.132,0.382) and (-0.243,0.532) .. (-0.162,1.037) .. controls (-0.08,1.543) and (1.033,1.557) .. (-0.046,2.854) -- cycle;  \fill (0.265,-1.437) .. controls (0.265,-1.437) and (0.828,-1.261) .. (0.828,-0.821) .. controls (0.828,-0.38) and (-0.008,0.398) .. (-0.693,-0.615) .. controls (-0.693,-0.615) and (-0.043,-0.298) .. (0.244,-0.718) .. controls (0.531,-1.138) and (0.265,-1.437) .. (0.265,-1.437) -- cycle;\end{scope}\begin{scope}[shift={(16.1,7.5)},scale=0.4]  \fill (2.618,0.03) arc (0.65:-108.11:2.617) arc (-109.36:-144.23:1.483) arc (-126.01:-106.96:2.311) -- (-0.765,-2.313) arc (-105.89:-89.03:2.626) -- (0.084,-2.411) arc (-88.26:-25.23:1.343) arc (-24.51:105.2:1.456) -- (-0.544,0.357) arc (-89.81:-245.57:0.358) -- (-0.678,1.045) -- (-0.66,1.051) arc (111.1:-48.41:1.832) arc (-54.52:144.29:2.093) -- (-1.722,0.869) arc (-38.34:-203.46:0.348) -- (-2.287,1.274) arc (150.88:0.65:2.617) -- cycle;  \fill (-0.622,-1.445) arc (-179.34:-153.86:0.364) arc (-154.3:-90.05:0.802) -- (0.139,-2.049) arc (-95.26:-25.01:0.634) arc (-20.19:-93.54:0.77) -- (0,-2.193) arc (-89.97:-344.28:0.94) -- (0.91,-1.015) -- (0.914,-1.029) -- (0.92,-1.072) arc (5.23:-168.1:0.363) -- (0.198,-1.147) arc (12.01:90.06:0.319) -- (-0.164,-0.898) -- (-0.195,-0.904) arc (103.38:180.12:0.555) -- cycle;  \fill[signal] (-2.251,-0.04) circle (0.347) (-1.776,-1.184) circle (0.254);\end{scope}\begin{scope}[shift={(19.3,7.5)},scale=0.4]  \foreach \s in {1,-1} {    \fill[xscale=\s] (1.739,1.622) .. controls (1.739,2.329) and (0.907,2.721) .. (0.907,2.721) .. controls (1.646,1.086) and (0.242,0.17) .. (0.242,0.17) .. controls (0.882,0.34) and (1.739,0.634) .. (1.739,1.622) -- cycle;    \fill[xscale=\s] (2.655,0.819) .. controls (2.655,0.819) and (2.301,-0.098) .. (1.485,-0.13) .. controls (0.67,-0.162) and (0.318,-0.19) .. (0.315,-0.749) .. controls (0.311,-1.307) and (0.878,-1.367) .. (0.906,-0.998) .. controls (0.906,-0.998) and (0.424,-0.99) .. (0.424,-0.664) .. controls (0.424,-0.339) and (0.709,-0.351) .. (0.826,-0.363) .. controls (0.942,-0.375) and (1.634,-0.913) .. (2.303,-0.527) .. controls (2.972,-0.141) and (2.655,0.819) .. (2.655,0.819) -- cycle;    \fill[xscale=\s] (0.001,-0.515) .. controls (0.219,-0.045) and (0.646,0.031) .. (1.373,0.481) .. controls (2.101,0.931) and (2.073,1.948) .. (2.073,1.948) .. controls (2.659,0.702) and (2.037,0.107) .. (1.241,0.051) .. controls (0.828,0.022) and (0.485,-0.159) .. (0.281,-0.339) arc (131.63:179.00:0.551) -- (0.094,-0.827) .. controls (0.094,-1.174) and (0.315,-1.386) .. (0.497,-1.386) arc (-90.62:-70.70:0.6) arc (109.65:61.61:0.265) -- (0.962,-1.393) .. controls (0.257,-1.93) and (-0.001,-2.721) .. (-0.001,-2.721) -- (-0.001,-2.286) .. controls (-0.001,-2.176) and (0.252,-1.836) .. (0.252,-1.836) arc (-104.01:-146.66:0.427) -- (0,-1.474) arc (-138.33:-125.53:0.717) arc (-124.14:-89.50:0.267) -- (0.408,-1.627) .. controls (0.408,-1.627) and (0.014,-1.438) .. (0.001,-1.225) -- cycle;  }\end{scope}\begin{scope}[shift={(22.5,7.5)},scale=0.4]  \fill (2.306,-1.241) arc (-28.29:-112.3:2.618) -- (-0.994,-2.429) arc (-93.68:-81.58:3.993) -- (-0.153,-2.389) arc (-83.79:-58.82:0.86) -- (0.201,-2.254) arc (-97.05:-184.05:1.606) -- (-1.21,-0.55) arc (-149.8:-94.56:0.619) arc (-88.46:-36.92:0.441) arc (-37.43:1.33:0.923) -- (-0.18,-0.096) arc (9.54:87.56:1.007) arc (92.27:159.92:1.104) -- (-2.134,0.025) arc (160.68:189.47:2.704) -- (-2.26,-1.321) arc (-149.69:-232.42:2.618) -- (-1.603,2.079) arc (146.24:158.42:3.993) -- (-1.993,1.327) arc (156.21:180.92:0.86) -- (-2.051,0.955) arc (142.84:55.79:1.606) -- (0.132,1.323) arc (89.85:145.32:0.619) arc (151.37:203.3:0.441) arc (-157.33:-118.58:0.923) -- (0.008,0.203) arc (-110.38:-32.62:1.007) arc (-27.9:39.55:1.104) -- (1.093,1.831) arc (40.53:69.3:2.704) -- (-0.006,2.618) arc (90.14:9.23:2.618) -- (2.57,0.413) arc (27.27:39.36:3.993) arc (40.55:64.77:0.86) -- (1.835,1.34) arc (24.44:-62.97:1.606) -- (1.093,-0.751) arc (-27.51:27.69:0.619) -- (1.088,-0.18) arc (34.65:83.57:0.441) arc (82.8:121.08:0.923) -- (0.176,-0.105) arc (129.31:208.61:1.007) arc (-146.78:-77.32:1.104) -- (1.098,-1.85) arc (-78.19:-49.16:2.704) -- cycle;\end{scope}\begin{scope}[shift={(25.7,7.5)},scale=0.4]  \foreach \s in {1,-1} {    \fill[xscale=\s,signal] (0,2.763) -- (0.355,2.201) arc (32.21:-40.7:0.493) -- (0,1.253) -- (0,2.763) -- cycle;    \fill[xscale=\s] (0,-2.082) -- (-0.005,-2.079) arc (148.45:106.06:1.667) -- (0.951,-1.338) arc (-70.73:-1.96:1.585) -- (2.007,0.104) arc (-1.67:69.4:1.064) -- (1.315,1.125) arc (64.82:141.71:0.829) -- (0.231,0.892) -- (0.147,1.02) arc (-147.15:-224.83:0.104) arc (136.32:91.94:1.149) arc (86.29:-3.02:1.442) -- (2.284,-0.322) -- (2.267,-0.334) -- (2.28,-0.344) -- (2.29,-0.346) arc (-12.64:-70.19:1.83) -- (1.13,-1.681) arc (113.77:132.36:3.255) -- (0.255,-2.262) arc (130.88:174.59:0.758) -- (0,-2.082) -- cycle;    \fill[xscale=\s] (0.335,-1.015) arc (-51.1:-32.72:2.82) -- (0.928,-0.338) arc (-33.9:22.21:0.661) -- (0.997,0.284) arc (28.2:113.26:0.442) -- (0.442,0.475) arc (146.28:64.18:0.634) -- (1.243,0.69) arc (60.27:24.76:0.55) -- (1.477,0.445) arc (20.17:-50.03:0.705) -- (1.268,-0.348) arc (88.74:25.04:0.441) arc (48.94:119.23:0.518) -- (1.071,-0.545) arc (-50.68:-64.16:3.721) -- cycle;    \fill[xscale=\s] (1.977,1.322) arc (172.53:92.35:0.345) -- (2.724,1.639) -- (2.626,1.293) arc (-15.87:-97.75:0.375) -- (1.944,1.062) -- (1.977,1.322) -- cycle;    \fill[xscale=\s] (2.945,-0.369) -- (2.74,-0.505) -- (2.729,-0.494) arc (-45.45:-138.73:0.197) -- (2.279,-0.345) -- (2.267,-0.334) -- (2.283,-0.323) -- (2.436,-0.21) -- (2.447,-0.22) arc (137.02:46.17:0.197) -- (2.945,-0.369) -- cycle;  }\end{scope}\begin{scope}[shift={(28.9,7.5)},scale=0.4]  \foreach \a in {0,60,...,300} {    \fill[rotate=\a] (0,2.985) arc (-157.11:-145.64:8.222) -- (0.561,1.657) -- (0.566,1.653) arc (141.5:169.57:2.904) -- (0,0.815) arc (178.21:150.81:2.194) arc (-119.62:-146.24:0.834) -- (0,2.985) -- cycle;    \fill[rotate=\a,xscale=-1] (0,2.985) arc (-157.11:-145.64:8.222) -- (0.561,1.657) -- (0.566,1.653) arc (141.5:169.57:2.904) -- (0,0.815) arc (178.21:150.81:2.194) arc (-119.62:-146.24:0.834) -- (0,2.985) -- cycle;    \fill[rotate=\a] (0.029,0.051) -- (0.069,0.412) arc (173.72:122.07:0.322) -- (0.434,0.785) -- (0.448,0.776) -- (0.029,0.051) -- cycle;    \fill[rotate=\a,xscale=-1] (0.029,0.051) -- (0.069,0.412) arc (173.72:122.07:0.322) -- (0.434,0.785) -- (0.448,0.776) -- (0.029,0.051) -- cycle;  }  \fill[signal] (0,0) circle (0.116);\end{scope}\begin{scope}[shift={(32.1,7.5)},scale=0.4]  \foreach \a in {0,180} \fill[rotate=\a] (1.9,-0.67) -- (1.943,-0.636) arc (-51.73:-21.92:1.551) -- (2.416,-0.001) arc (33.05:51.82:10.928) -- (-0.001,2.615) -- (0.003,2.609) arc (126.53:141.19:9.198) -- (-1.676,0.972) arc (-166.60:-151.38:4.155) -- (-1.27,-0.051) -- (-1.266,-0.055) arc (135.94:123.55:7.582) -- (-0.001,0.98) arc (51.69:20.61:1.728) -- (-0.045,-0.326) -- (0.131,-0.564) -- (1.019,0.194) arc (26.93:46.35:5.033) -- (-0.001,1.551) -- (-1.131,0.594) arc (160.47:134.11:4.603) -- (-0.007,2.357) arc (42.64:22.58:10.285) -- cycle;\end{scope} % 02 冰:六种转动,六种翻面\begin{scope}[shift={(0,0)}]  % 六条对称轴  \foreach \a in {0,30,...,150} \draw[help lines,dashed] (\a:3.3) -- (\a+180:3.3);   % 十二分之一:穿过臂与穿过花瓣的两条相邻对称轴之间  \draw[help lines] (60:3.15) arc (60:90:3.15) (75:3.15) node[above right] {$1/12$};   % 半条臂与半片花瓣:五个圆  \draw[compass] (7.577,6.184) circle (8.222);  \draw[compass] (2.839,-0.155) circle (2.904);  \draw[compass] (2.193,0.746) circle (2.194);  \draw[compass] (0.691,2.543) circle (0.834);  \draw[compass] (0.389,0.377) circle (0.322);   % 群作用:这十二分之一转到六个位置(含原位),各加一份镜像  \foreach \a in {0,60,...,300} {    \fill[rotate=\a,hatch=10] (0,2.985) arc (-157.11:-145.64:8.222) -- (0.561,1.657) -- (0.566,1.653) arc (141.5:169.57:2.904) -- (0,0.815) arc (178.21:150.81:2.194) arc (-119.62:-146.24:0.834) -- (0,2.985) -- cycle;    \fill[rotate=\a,xscale=-1,hatch=10] (0,2.985) arc (-157.11:-145.64:8.222) -- (0.561,1.657) -- (0.566,1.653) arc (141.5:169.57:2.904) -- (0,0.815) arc (178.21:150.81:2.194) arc (-119.62:-146.24:0.834) -- (0,2.985) -- cycle;    \fill[rotate=\a,hatch=3] (0.029,0.051) -- (0.069,0.412) arc (173.72:122.07:0.322) -- (0.434,0.785) -- (0.448,0.776) -- (0.029,0.051) -- cycle;    \fill[rotate=\a,xscale=-1,hatch=3] (0.029,0.051) -- (0.069,0.412) arc (173.72:122.07:0.322) -- (0.434,0.785) -- (0.448,0.776) -- (0.029,0.051) -- cycle;  }   \fill[signal] (0,0) circle (0.116);\end{scope} % 03 雷:三种转动\begin{scope}[shift={(7.5,0)}]  % 外圆,R = phi^2  \draw[compass] (0,0) circle (2.618) (-2.95,1.55) node[left] {$R = \varphi^2$};   % 九个圆;外圆半径取 phi^2,三个半径与 phi、1/phi、1 依次差 <1%  \draw[compass] (-58.89:0.771) circle (1.606) (0.398,0.946) -- (0.398,3.2) -- (2.25,3.2) node[right] {$r \approx \varphi$};  \draw[compass] (-40.5:0.716) circle (0.619) (0.544,0.154) -- (0.544,2.9) -- (2.25,2.9) node[right] {$r \approx \varphi^{-1}$};  \draw[compass] (-47.38:1.202) circle (1.007) (0.814,0.122) -- (0.814,2.6) -- (2.25,2.6) node[right] {$r \approx 1$};  \draw[compass] (-4.65:1.722) circle (3.993);  \draw[compass] (55.64:0.965) circle (2.704);  \draw[compass] (-41.76:1.144) circle (1.104);  \draw[compass] (-53.9:1.12) circle (0.923);  \draw[compass] (20.89:1.554) circle (0.86);  \draw[compass] (-30.7:0.844) circle (0.441);   % 同样九个圆,转到另外两片  \foreach \a in {120,240} {    \draw[compass,rotate=\a] (-58.89:0.771) circle (1.606);    \draw[compass,rotate=\a] (-40.5:0.716) circle (0.619);    \draw[compass,rotate=\a] (-47.38:1.202) circle (1.007);    \draw[compass,rotate=\a] (-4.65:1.722) circle (3.993);    \draw[compass,rotate=\a] (55.64:0.965) circle (2.704);    \draw[compass,rotate=\a] (-41.76:1.144) circle (1.104);    \draw[compass,rotate=\a] (-53.9:1.12) circle (0.923);    \draw[compass,rotate=\a] (20.89:1.554) circle (0.86);    \draw[compass,rotate=\a] (-30.7:0.844) circle (0.441);  }   % 三片:一条轮廓  \fill[hatch=14] (2.306,-1.241) arc (-28.29:-112.3:2.618) -- (-0.994,-2.429) arc (-93.68:-81.58:3.993) -- (-0.153,-2.389) arc (-83.79:-58.82:0.86) -- (0.201,-2.254) arc (-97.05:-184.05:1.606) -- (-1.21,-0.55) arc (-149.8:-94.56:0.619) arc (-88.46:-36.92:0.441) arc (-37.43:1.33:0.923) -- (-0.18,-0.096) arc (9.54:87.56:1.007) arc (92.27:159.92:1.104) -- (-2.134,0.025) arc (160.68:189.47:2.704) -- (-2.26,-1.321) arc (-149.69:-232.42:2.618) -- (-1.603,2.079) arc (146.24:158.42:3.993) -- (-1.993,1.327) arc (156.21:180.92:0.86) -- (-2.051,0.955) arc (142.84:55.79:1.606) -- (0.132,1.323) arc (89.85:145.32:0.619) arc (151.37:203.3:0.441) arc (-157.33:-118.58:0.923) -- (0.008,0.203) arc (-110.38:-32.62:1.007) arc (-27.9:39.55:1.104) -- (1.093,1.831) arc (40.53:69.3:2.704) -- (-0.006,2.618) arc (90.14:9.23:2.618) -- (2.57,0.413) arc (27.27:39.36:3.993) arc (40.55:64.77:0.86) -- (1.835,1.34) arc (24.44:-62.97:1.606) -- (1.093,-0.751) arc (-27.51:27.69:0.619) -- (1.088,-0.18) arc (34.65:83.57:0.441) arc (82.8:121.08:0.923) -- (0.176,-0.105) arc (129.31:208.61:1.007) arc (-146.78:-77.32:1.104) -- (1.098,-1.85) arc (-78.19:-49.16:2.704) -- cycle;\end{scope} % 04 岩:转半圈,没有对称轴\begin{scope}[shift={(15,0)}]  % 转半圈的中心  \draw[help lines] (-0.25,0) -- (0.25,0) (0,-0.25) -- (0,0.25);   % 一块:9 个圆  \draw[compass] (-6.744,-5.962) circle (10.928);  \draw[compass] (-7.573,-4.611) circle (10.285);  \draw[compass] (5.479,-4.782) circle (9.198);  \draw[compass] (4.183,-5.326) circle (7.582);  \draw[compass] (-3.47,-2.086) circle (5.033);  \draw[compass] (3.205,-0.944) circle (4.603);  \draw[compass] (2.369,1.935) circle (4.155);  \draw[compass] (-1.072,-0.375) circle (1.728);  \draw[compass] (0.982,0.581) circle (1.551);   % 这一块,与它转 180 度得到的另一块  \foreach \a in {0,180} \fill[rotate=\a,hatch=12] (1.9,-0.67) -- (1.943,-0.636) arc (-51.73:-21.92:1.551) -- (2.416,-0.001) arc (33.05:51.82:10.928) -- (-0.001,2.615) -- (0.003,2.609) arc (126.53:141.19:9.198) -- (-1.676,0.972) arc (-166.60:-151.38:4.155) -- (-1.27,-0.051) -- (-1.266,-0.055) arc (135.94:123.55:7.582) -- (-0.001,0.98) arc (51.69:20.61:1.728) -- (-0.045,-0.326) -- (0.131,-0.564) -- (1.019,0.194) arc (26.93:46.35:5.033) -- (-0.001,1.551) -- (-1.131,0.594) arc (160.47:134.11:4.603) -- (-0.007,2.357) arc (42.64:22.58:10.285) -- cycle;\end{scope} % 05 草:一面镜子\begin{scope}[shift={(22.5,0)}]  % 对称轴  \draw[help lines,dashed] (0,-3.2) -- (0,3.2);   % 右半边:23 个圆  \draw[compass] (-1.287,2.334) circle (3.721);  \draw[compass] (2.442,-4.66) circle (3.255);  \draw[compass] (-1.438,1.182) circle (2.82);  \draw[compass] (0.504,0.054) circle (1.83);  \draw[compass] (1.416,-2.951) circle (1.667);  \draw[compass] (0.428,0.158) circle (1.585);  \draw[compass] (0.861,0.068) circle (1.442);  \draw[compass] (0.993,0.356) circle (1.149);  \draw[compass] (0.943,0.135) circle (1.064);  \draw[compass] (0.962,0.375) circle (0.829);  \draw[compass] (0.751,-2.835) circle (0.758);  \draw[compass] (0.815,0.202) circle (0.705);  \draw[compass] (0.379,0.031) circle (0.661);  \draw[compass] (0.969,0.123) circle (0.634);  \draw[compass] (0.97,0.212) circle (0.55);  \draw[compass] (1.319,-0.991) circle (0.518);  \draw[compass] (-0.062,1.938) circle (0.493);  \draw[compass] (0.607,0.075) circle (0.442);  \draw[compass] (1.258,-0.789) circle (0.441);  \draw[compass] (2.265,1.396) circle (0.375);  \draw[compass] (2.319,1.277) circle (0.345);  \draw[compass] (2.591,-0.354) circle (0.197);  \draw[compass] (0.235,1.077) circle (0.104);   % 右半边,再加它的镜像  \foreach \s in {1,-1} {    \fill[xscale=\s,signal,hatch=3] (0,2.763) -- (0.355,2.201) arc (32.21:-40.7:0.493) -- (0,1.253) -- (0,2.763) -- cycle;    \fill[xscale=\s,hatch=14] (0,-2.082) -- (-0.005,-2.079) arc (148.45:106.06:1.667) -- (0.951,-1.338) arc (-70.73:-1.96:1.585) -- (2.007,0.104) arc (-1.67:69.4:1.064) -- (1.315,1.125) arc (64.82:141.71:0.829) -- (0.231,0.892) -- (0.147,1.02) arc (-147.15:-224.83:0.104) arc (136.32:91.94:1.149) arc (86.29:-3.02:1.442) -- (2.284,-0.322) -- (2.267,-0.334) -- (2.28,-0.344) -- (2.29,-0.346) arc (-12.64:-70.19:1.83) -- (1.13,-1.681) arc (113.77:132.36:3.255) -- (0.255,-2.262) arc (130.88:174.59:0.758) -- (0,-2.082) -- cycle;    \fill[xscale=\s,hatch=8] (0.335,-1.015) arc (-51.1:-32.72:2.82) -- (0.928,-0.338) arc (-33.9:22.21:0.661) -- (0.997,0.284) arc (28.2:113.26:0.442) -- (0.442,0.475) arc (146.28:64.18:0.634) -- (1.243,0.69) arc (60.27:24.76:0.55) -- (1.477,0.445) arc (20.17:-50.03:0.705) -- (1.268,-0.348) arc (88.74:25.04:0.441) arc (48.94:119.23:0.518) -- (1.071,-0.545) arc (-50.68:-64.16:3.721) -- cycle;    \fill[xscale=\s,hatch=4] (1.977,1.322) arc (172.53:92.35:0.345) -- (2.724,1.639) -- (2.626,1.293) arc (-15.87:-97.75:0.375) -- (1.944,1.062) -- (1.977,1.322) -- cycle;    \fill[xscale=\s,hatch=3] (2.945,-0.369) -- (2.74,-0.505) -- (2.729,-0.494) arc (-45.45:-138.73:0.197) -- (2.279,-0.345) -- (2.267,-0.334) -- (2.283,-0.323) -- (2.436,-0.21) -- (2.447,-0.22) arc (137.02:46.17:0.197) -- (2.945,-0.369) -- cycle;  }\end{scope} % 06 风:一面镜子,自由曲线\begin{scope}[shift={(30,0)}]  % 对称轴  \draw[help lines,dashed] (0,-3.2) -- (0,3.2);   % 右半边:逐段画曲线  \foreach \s in {1,-1} {    \fill[xscale=\s,working,hatch=10] (1.739,1.622) .. controls (1.739,2.329) and (0.907,2.721) .. (0.907,2.721) .. controls (1.646,1.086) and (0.242,0.17) .. (0.242,0.17) .. controls (0.882,0.34) and (1.739,0.634) .. (1.739,1.622) -- cycle;    \fill[xscale=\s,working,hatch=10] (2.655,0.819) .. controls (2.655,0.819) and (2.301,-0.098) .. (1.485,-0.13) .. controls (0.67,-0.162) and (0.318,-0.19) .. (0.315,-0.749) .. controls (0.311,-1.307) and (0.878,-1.367) .. (0.906,-0.998) .. controls (0.906,-0.998) and (0.424,-0.99) .. (0.424,-0.664) .. controls (0.424,-0.339) and (0.709,-0.351) .. (0.826,-0.363) .. controls (0.942,-0.375) and (1.634,-0.913) .. (2.303,-0.527) .. controls (2.972,-0.141) and (2.655,0.819) .. (2.655,0.819) -- cycle;    \fill[xscale=\s,working,hatch=10] (0.001,-0.515) .. controls (0.219,-0.045) and (0.646,0.031) .. (1.373,0.481) .. controls (2.101,0.931) and (2.073,1.948) .. (2.073,1.948) .. controls (2.659,0.702) and (2.037,0.107) .. (1.241,0.051) .. controls (0.828,0.022) and (0.485,-0.159) .. (0.281,-0.339) arc (131.63:179.00:0.551) -- (0.094,-0.827) .. controls (0.094,-1.174) and (0.315,-1.386) .. (0.497,-1.386) arc (-90.62:-70.70:0.6) arc (109.65:61.61:0.265) -- (0.962,-1.393) .. controls (0.257,-1.93) and (-0.001,-2.721) .. (-0.001,-2.721) -- (-0.001,-2.286) .. controls (-0.001,-2.176) and (0.252,-1.836) .. (0.252,-1.836) arc (-104.01:-146.66:0.427) -- (0,-1.474) arc (-138.33:-125.53:0.717) arc (-124.14:-89.50:0.267) -- (0.408,-1.627) .. controls (0.408,-1.627) and (0.014,-1.438) .. (0.001,-1.225) -- cycle;  }\end{scope} % 07 水:只有「不动」,但四个主圆圆心共线\begin{scope}[shift={(37.5,0)}]  % 竖线:外圆与几段长弧的圆心都在线上  \draw[help lines,dashed] (0,-3.05) -- (0,3.05);   % 外圆;外浪的内缘与内浪的外缘;漩涡  \draw[compass] (0,0) circle (2.617) (0,2.617) node[above right] {$R$};  \draw[compass] (0,-0.324) circle (2.093) (0,1.769) node[below right] {$0.8\,R$};  \draw[compass] (0,-0.66) circle (1.832) (0,1.172) node[above right] {$0.7\,R$};  \draw[compass] (0,-1.253) circle (0.94) (0,-0.313) node[above right] {$0.36\,R$};   % 两道浪的其余部分:尾部的边、内浪的内缘、圆头  \draw[compass] (-0.046,0.213) circle (2.626);  \draw[compass] (-0.164,-0.081) circle (2.311);  \draw[compass] (-0.321,-1.086) circle (1.483);  \draw[compass] (-0.068,-1.036) circle (1.456);  \draw[compass] (0.043,-1.068) circle (1.343);  \draw[compass] (-1.995,1.085) circle (0.348);  \draw[compass] (-0.545,0.715) circle (0.358);   % 漩涡的其余部分  \draw[compass] (0.139,-1.253) circle (0.802);  \draw[compass] (0.048,-1.42) circle (0.77);  \draw[compass] (0.197,-1.418) circle (0.634);  \draw[compass] (-0.067,-1.444) circle (0.555);  \draw[compass] (-0.258,-1.441) circle (0.364);  \draw[compass] (0.558,-1.105) circle (0.363);  \draw[compass] (-0.115,-1.214) circle (0.319);   % 两道浪、漩涡、两滴水  \fill[hatch=14] (2.618,0.03) arc (0.65:-108.11:2.617) arc (-109.36:-144.23:1.483) arc (-126.01:-106.96:2.311) -- (-0.765,-2.313) arc (-105.89:-89.03:2.626) -- (0.084,-2.411) arc (-88.26:-25.23:1.343) arc (-24.51:105.2:1.456) -- (-0.544,0.357) arc (-89.81:-245.57:0.358) -- (-0.678,1.045) -- (-0.66,1.051) arc (111.1:-48.41:1.832) arc (-54.52:144.29:2.093) -- (-1.722,0.869) arc (-38.34:-203.46:0.348) -- (-2.287,1.274) arc (150.88:0.65:2.617) -- cycle;  \fill[hatch=14] (-0.622,-1.445) arc (-179.34:-153.86:0.364) arc (-154.3:-90.05:0.802) -- (0.139,-2.049) arc (-95.26:-25.01:0.634) arc (-20.19:-93.54:0.77) -- (0,-2.193) arc (-89.97:-344.28:0.94) -- (0.91,-1.015) -- (0.914,-1.029) -- (0.92,-1.072) arc (5.23:-168.1:0.363) -- (0.198,-1.147) arc (12.01:90.06:0.319) -- (-0.164,-0.898) -- (-0.195,-0.904) arc (103.38:180.12:0.555) -- cycle;   \fill[signal,hatch=3] (-2.251,-0.04) circle (0.347) (-1.776,-1.184) circle (0.254);\end{scope} % 08 火:也只有「不动」\begin{scope}[shift={(45,0)}]  % 火焰:逐段画曲线  \fill[working,hatch=10] (-0.046,2.854) .. controls (-0.046,2.854) and (-0.046,2.397) .. (-0.313,2.055) .. controls (-0.58,1.714) and (-0.805,1.509) .. (-0.805,1.154) .. controls (-0.805,0.799) and (-0.545,0.519) .. (0.151,0.232) .. controls (0.848,-0.055) and (1.211,-0.478) .. (1.211,-0.874) .. controls (1.211,-1.27) and (0.931,-1.817) .. (0.005,-1.81) .. controls (-0.91,-1.666) and (-0.462,-0.888) .. (-0.217,-0.806) .. controls (-0.217,-0.806) and (-0.926,-0.745) .. (-0.926,-1.251) .. controls (-0.926,-1.756) and (-0.257,-1.919) .. (0.135,-1.919) .. controls (0.528,-1.919) and (1.73,-1.687) .. (1.73,-0.663) .. controls (1.73,-0.26) and (1.573,-0.034) .. (1.573,-0.034) .. controls (1.573,-0.034) and (2.168,-0.264) .. (2.098,-0.847) .. controls (2.01,-1.583) and (0.945,-1.635) .. (0.049,-2.487) .. controls (0.049,-2.487) and (-0.19,-2.208) .. (-1.009,-1.803) .. controls (-1.477,-1.571) and (-2.042,-1.373) .. (-2.026,-0.684) .. controls (-2.013,-0.11) and (-1.405,0.123) .. (-1.405,0.123) .. controls (-1.405,0.123) and (-2.429,-0.929) .. (-0.961,-1.625) .. controls (-0.961,-1.625) and (-1.91,-0.15) .. (-0.039,0.171) .. controls (-0.039,0.171) and (-1.056,0.43) .. (-1.097,1.304) .. controls (-1.097,1.304) and (-1.268,0.812) .. (-1.514,0.553) .. controls (-1.76,0.294) and (-2.373,-0.317) .. (-2.291,-1.007) .. controls (-2.209,-1.696) and (-0.599,-2.083) .. (0.043,-2.855) .. controls (0.043,-2.855) and (0.562,-2.316) .. (1.088,-2.063) .. controls (1.613,-1.81) and (3.368,-0.998) .. (1.355,0.539) .. controls (1.355,0.539) and (1.047,0.744) .. (1.02,1.311) arc (137.30:179.50:1.03) .. controls (0.747,0.197) and (1.048,0.272) .. (1.081,-0.123) .. controls (1.081,-0.123) and (0.487,0.382) .. (0.494,0.778) .. controls (0.501,1.174) and (0.651,1.597) .. (0.651,1.597) .. controls (0.651,1.597) and (-0.38,1.126) .. (0.132,0.382) .. controls (0.132,0.382) and (-0.243,0.532) .. (-0.162,1.037) .. controls (-0.08,1.543) and (1.033,1.557) .. (-0.046,2.854) -- cycle;  \fill[working,hatch=10] (0.265,-1.437) .. controls (0.265,-1.437) and (0.828,-1.261) .. (0.828,-0.821) .. controls (0.828,-0.38) and (-0.008,0.398) .. (-0.693,-0.615) .. controls (-0.693,-0.615) and (-0.043,-0.298) .. (0.244,-0.718) .. controls (0.531,-1.138) and (0.265,-1.437) .. (0.265,-1.437) -- cycle;\end{scope} \end{tikzpicture}

七枚用 TikZ 写成的图标,播放时实时绘制,无预录画面。

配乐:依据本片的作图计划以代码合成,96 BPM。

作图引擎改编自 Giacomo Magnanini《I’m Upping My P(doom)》的第 1 幅图版 · mexicat/pdoom-video(MIT)。图标归 HoYoverse 所有;本片依照 Genshin Impact Fanon Wiki 上 Rafimizated 与 Hetalian.Ana 绘制的同人矢量图拟合,是对图形的分析,并非 HoYoverse 官方的作图过程。

四宫格