📄 colorspectrum.java
字号:
/*
Netwar
Copyright (C) 2002 Daniel Grund, Kyle Kakligian, Jason Komutrattananon, & Brian Hibler.
This file is part of Netwar.
Netwar is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
Netwar is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Netwar; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package netwar.utils.vectorgraphics;
import java.awt.Color;
import netwar.utils.Assert;
/** This is a one-dimensional spectrum of Colors for MalleableColors to use.
* This creates the actual Color objects to be used by the MalleableColor.
* The ColorSpectrum should be used as a static object, while the MalleableColors can
* be specific to the object that uses them.
* @author Daniel Grund
*/
public class ColorSpectrum {
Color colors[];
/** Creates a new instance of ColorSpectrum
* @param redOne the red level of color 1
* @param redN the red level of color N
* @param greenOne the green level of color 1
* @param greenN the green level of color N
* @param blueOne the blue level of color 1
* @param blueN the blue level of color N
* @param alphaOne the alpha level of color 1
* @param alphaN the alpha level of color N
* @param N the number of colors in this spectrum
*/
public ColorSpectrum(int redOne, int redN, int greenOne, int greenN, int blueOne, int blueN, int alphaOne, int alphaN, int N) {
Assert.notFalse(N > 1, "A ColorSpectrum must have at least two colors");
int n;
colors = new Color[N];
for(n = 0; n < N; n++) {
colors[n] = new Color(
clamp(((N - 1 - n) * redOne + n * redN ) / (N - 1)),
clamp(((N - 1 - n) * greenOne + n * greenN ) / (N - 1)),
clamp(((N - 1 - n) * blueOne + n * blueN ) / (N - 1)),
clamp(((N - 1 - n) * alphaOne + n * alphaN ) / (N - 1)));
}
}
Color getColor(int num) {
return colors[num];
}
int getLength() {
return colors.length;
}
int clamp(int value) {
if(value < 0)
return 0;
if(value > 255)
return 255;
return value;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -