2

所以,我正在尝试创建一个径向渐变(用于游戏中的静态照明)。我想出了这个:

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);

但我得到的结果是这样的:

在此处输入图像描述

我想获得更平滑的渐变,例如:

在此处输入图像描述

我试着玩弄步骤和强度,但我无法得到类似于上面渐变的东西。这样做的好方法是什么?提前致谢!

4

1 回答 1

2

我没有具体的答案,但第二张照片的外观给我的印象是强度不是线性下降,而是呈指数下降。

您可以尝试使用指数函数而不是线性递减函数吗?a对于向外的每一步,将强度乘以< 1的固定数字。

于 2013-06-19T14:54:22.823 回答