第 31 课:Atan
我的解:23: Sin
我的解
uniform vec2 iResolution;
#define M_PI 3.1415926535897932384626433832795
void main() {
vec2 uv = gl_FragCoord.xy / iResolution.xy;
vec2 ratio = vec2(iResolution.x/iResolution.y, 1.0);
float dist = distance(uv*ratio, vec2(0.5)*ratio);
float t = 1.0 - step(0.5, dist);
vec2 green = vec2(0.0, 1.0);
vec2 red = vec2(1.0, 0.0);
vec2 dxdy = uv*ratio-vec2(0.5)*ratio;
float angle = atan(dxdy.y, dxdy.x);
float normalizedAngle = abs(angle/M_PI);
vec2 mixed = mix(red,green, normalizedAngle);
gl_FragColor = vec4(mixed*t,0.0, 1.0);
}
复盘笔记
- 23: Sin