1.圆内放大
//圆内放大
vec2 enlargeFun(vec2 curCoord,vec2 circleCenter,float radius,float intensity,float curve)
{
float currentDistance = distance(curCoord,circleCenter);
{
float weight = currentDistance/radius;
weight = 1.0-intensity*(1.0-pow(weight,curve));//默认curve 为2 ,当 curve 越大时, 会放大得越大的,
weight = clamp(weight,0.0,1.0);
curCoord = circleCenter+(curCoord-circleCenter)*weight;
}
return curCoord;
}
这是圆内放大算法,
输入:坐标,放大中心坐标,放大半径,放大比例系数,放大算法参数.
返回:放大之后应该取的像素的位置.
通常 intensity = 1.0,curve = 2.0
2.圆内缩小
vec2 narrowFun(vec2 curCoord,vec2 circleCenter,float radius,float intensity,float curve)
{
float currentDistance = distance(curCoord,circleCenter);
{
float weight = currentDistance/radius;
weight = 1.0-intensity*(1.0-pow(weight,curve));//默认curve 为2 ,当curve 越大时, 会缩小得越小的,
weight = clamp(weight,0.0001,1.0);
cu