第 16 课:Matrix
我的解:两个解没区别,这里注意一开始uv就被平移到了-0.5-0.5的空间里。下面的0.5,0.5 则是这个坐标系的右上角45的位置,旋转反而是最简单的一步
我的解
uniform vec2 iResolution;
uniform float iTime;
void main() {
vec2 uv = gl_FragCoord.xy / iResolution;
uv = uv * 2.0 - 1.0;
uv.x *= iResolution.x / iResolution.y;
float angle = iTime * 2.0;
float X_x = +cos(angle);
float X_y = +sin(angle);
vec2 Xcol = vec2(X_x,X_y);
float Y_x = -sin(angle);
float Y_y = +cos(angle);[[#7 max]]
vec2 Ycol = vec2(Y_x,Y_y);
mat2 RotationMatrix = mat2(Xcol,Ycol);
vec2 P = vec2(0.5, 0.5)*RotationMatrix;
float t = 1.0 - smoothstep(0.24, 0.25, distance(P, uv));
gl_FragColor = vec4(t, 0.0, 0.0, 1.0);
}
复盘笔记
- 两个解没区别,这里注意一开始uv就被平移到了-0.5-0.5的空间里。下面的0.5,0.5 则是这个坐标系的右上角45的位置,旋转反而是最简单的一步
<2025/05/27>- ==记录时间: 5月28日 2025, 03:09 下午==