0
我該如何將漸變應用於這樣的事情?剛剛得到一個純色。對像素的梯度效果[Java]
for (int i = 0; i < screen.pixels.length; i++)
screen.pixels[i] = 0xff0000;
我該如何將漸變應用於這樣的事情?剛剛得到一個純色。對像素的梯度效果[Java]
for (int i = 0; i < screen.pixels.length; i++)
screen.pixels[i] = 0xff0000;
通過得到的十六進制代碼的RGB值,通過得到了梯度矩形的大小循環解決該問題,並且兩個R,G和B值之間的內插。
float r = Color.decode(colourOne).getRed();
float g = Color.decode(colourOne).getGreen();
float b = Color.decode(colourOne).getBlue();
float r2 = Color.decode(colourTwo).getRed();
float g2 = Color.decode(colourTwo).getGreen();
float b2 = Color.decode(colourTwo).getBlue();
float interp, newR, newG, newB;
for (int x = 0; x < width; x++)
{
for (int y = 0; y < height; y++)
{
interp = (float) (x + y)/(float) (width + height);
newR = r * (1 - interp) + r2 * interp;
newG = g * (1 - interp) + g2 * interp;
newB = b * (1 - interp) + b2 * interp;
pixels[x + y * width] = (int) (Math.floor(newR) * 0x10000 + Math.floor(newG) * 0x100 + Math.floor(newB));
}
}
那麼,[第二實施例](http://stackoverflow.com/questions/32814623/fillarc-in-java-not-blending-color-as-expected/32814713#32814713)是的impleemntation [這個例子](http://stackoverflow.com/questions/13223065/color-fading-algorithm/13223818#13223818)它也用於[這個例子](http://stackoverflow.com/questions/21270610/java平滑肌色過渡/ 21270957#21270957)。基本上,這只是一個簡單的顏色混合算法,它可以獲取一組顏色和點並給出百分比值,計算應該使用的顏色 – MadProgrammer
而不是'screen.pixels [i] = 0xff0000;'執行'screen.pixels [ i] =((256 * i)/screen.pixels.length)* 0x10000;'或者在R,G,B通道上使用任何基於'i/screen.pixels.length'作爲參數的漸變函數... like [可見光譜的RGB值](http://stackoverflow.com/a/22681410/2521214)或[明星BV顏色索引到明顯的RGB顏色](http://stackoverflow.com/a/22630970/2521214) – Spektre