极坐标渐变(角度)
27 / 30
将 UV 转换为极坐标角度,并映射到 0-1 渐变。
水平渐变用 vUv.x,垂直用 vUv.y,对角线用两者的平均。还有一种方向:角度——用 atan 把坐标转成 0~1 的旋转因子。
atan 得到角度
先居中坐标,再计算角度:
atan(y, x) 返回当前像素相对于中心的方向角,范围是负 π 到正 π(约 -3.14 到 3.14)。
映射到 0~1
加上 π 让范围从 -π~π 变成 0~2π,再除以 2π,得到 0~1。
结果:从中心看,逆时针一圈颜色从 colorA 渐变到 colorB。
练习
练习代码里 t = 0.0(全是 colorA)。计算角度 a,再把它映射到 0~1 得到 t,让画面出现旋转渐变。
答案解析
atan(y, x) 是反正切函数,给定坐标方向返回角度。3.14159265 是 π,6.2831853 是 2π。
注意渐变在正右方(3 点钟方向)有一条接缝,这是 atan 从 π 跳回 -π 的地方。这是极坐标渐变的正常现象。