所以,我正在尝试创建一个径向渐变(用于游戏中的静态光照)。我想出了这个:
int step = 4;
int forLen = (radius / step);
g.setColor(new Color(0, 0, 0, intensity));
for (int i = 0; i < forLen; i++)
g.fillOval(radius - i * step, radius - i * step, i * step * 2, i * step * 2);
但我得到的结果是:
我希望得到更平滑的渐变,例如:
我试着玩一步和强度,但我不能得到类似于上面渐变的东西。 这样做的好方法是什么? 提前谢谢!
答案 0 :(得分:2)
我没有具体的答案,但第二张照片的外观给我留下的印象是强度没有呈线性下降,而是呈指数级下降。
您可以尝试使用指数函数代替线性递减函数吗?对于向外的每一步,将强度乘以固定数a
&lt; 1。