taontech / githublog

一个基于github issues的博客系统,实时呈现,零依赖,零代码部署,不用打包不用上线。
4 stars 1 forks source link

片元旋转UV函数 #99

Open taontech opened 10 months ago

taontech commented 10 months ago

需要Atan2方法,但是shader没有原生atan2.

float ATan2(vec2 dir)
{
    float angle = asin(dir.x) > 0.0 ? acos(dir.y) : -acos(dir.y);
    return angle;
}
vec2 rotatePt(in vec2 pt, in vec2 center, in float rad){
    float r = length(pt-center);
    float nextRad = ATan2((pt-center)/r);
    nextRad -= rad;
    return vec2(center.x + cos(nextRad)*r, center.y + sin(nextRad)*r);
}