Java 颜色功能:变暗和变亮
我目前正在编写一个程序,将呈现我的minecraft世界。 太可爱了! 问题是下一部分涉及的数学: 我想给我的函数一个平均高度和一个当前高度 如果高度低于平均高度,我将用黑色覆盖这一部分,它的透明度将取决于数量,但也会被钳制以不使其变黑 以下是我目前拥有的:Java 颜色功能:变暗和变亮,java,graphics,colors,Java,Graphics,Colors,我目前正在编写一个程序,将呈现我的minecraft世界。 太可爱了! 问题是下一部分涉及的数学: 我想给我的函数一个平均高度和一个当前高度 如果高度低于平均高度,我将用黑色覆盖这一部分,它的透明度将取决于数量,但也会被钳制以不使其变黑 以下是我目前拥有的: public Color getHeightColor(float averageHeight, float height) { if (averageHeight > height) { return new
public Color getHeightColor(float averageHeight, float height) {
if (averageHeight > height) {
return new Color(0, 0, 0, clamp(height / averageHeight, 0f, 0.8f));
} else {
return new Color(1, 1, 1, clamp(averageHeight / height, 0f, 0.8f));
}
}
不幸的是,这并不是我想要它做的任何事情,我只是想不出一个好的方法来做这件事,因为我的数学非常糟糕
编辑:经过一番思考后,我打算去掉灯光,而只是把它调暗,给它一种深度感
你们中有谁能给我指出正确的方向吗?我不太确定你们到底想要什么颜色,但是,如果你们想让高于平均值的颜色更亮,而低于平均值的颜色更暗,那么可以做如下操作:
// This assumes both args are positive and non-zero
public Color getHeightColor(float averageHeight, float height) {
if (averageHeight > height) {
return new Color(0f, 0f, 0f, 1f - (height / averageHeight));
} else {
return new Color(1f, 1f, 1f, 1f - (averageHeight / height));
}
}