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;
勾配を持った矩形のサイズをループ、16進コードのRGB値を取得することにより問題を解決し、2つの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;' do 'screen.pixels [ i] =((256 * i)/screen.pixels.length)* 0x10000; 'またはi/screen.pixels.length'に基づいてR、G、Bチャンネル上の任意の勾配関数をパラメータとして使用します。 [可視スペクトルのRGB値](http://stackoverflow.com/a/22681410/2521214)または[見た目のRGBカラーインデックスから見た目のRGBカラーインデックスへ](http://stackoverflow.com/a/22630970/2521214) – Spektre