gpt4 book ai didi

java - 梯度算法..它是如何工作的

转载 作者:行者123 更新时间:2023-12-01 15:35:54 36 4
gpt4 key购买 nike

如果给我颜色 A 和颜色 B,如何才能避免在 Canvas 上生成渐变,然后将其转换为位图。

这样

公共(public)位图 makeGradient(颜色从,颜色到){}

真的有用吗?

我希望这不是太含糊。我感谢您付出的时间和精力。

诗。 stackoverflow 上有一个问题可以回答这个问题,但我仍然很困惑:(

这是:Generating gradients programmatically?

最佳答案

创建径向渐变的一种方法可能是定义焦点以及渐变的范围,当您生成图像时,您将计算当前像素和焦点之间的距离,将其除以通过梯度范围并将结果剪裁为 1。然后使用您链接的问题中的公式。

像这样的伪代码:

double d = distance(currentPixel, focusPoint); //I'll leave the implementation for you
double factor = Math.max(1.0, d/extent);

int red = (int) (firstCol.getRed() * factor + secondCol.getRed() * (1.0 - factor) );
int green= (int) firstCol.getGreen() * factor + secondCol.getGreen()* (1.0 - factor) );
int blue = (int) (firstCol.getBlue() * factor + secondCol.getBlue()* (1.0 - factor) );

这意味着像素距离焦点越远,firstCol 对它的贡献就越大(超出渐变范围的像素将仅使用 firstCol > 因为 factor 对于这些来说应该是 1.0)。

关于java - 梯度算法..它是如何工作的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8847384/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com