【发布时间】:2014-02-24 21:20:49
【问题描述】:
我正在尝试在我的像素栅格上生成线性渐变。我在处理 2.0 时这样做——这主要是 Java,但有一些额外的类和变量。我已经有了做径向渐变的功能:
/* For every pixel */
distance = dist(centerX,centerY, x,y); //calculate distance between position and center of gradient
lerpValue = norm(distance, 0, maxRadius) //normalize this value between 0 and the give maximum radius
color = lerpColor(startColor, endColor, lerpValue ); //calculate Color
/*end for*/
这比我想象的要容易。然后我试图做一个从一个点到另一个点的渐变,我不知道如何计算这个。当然,水平或垂直渐变是没有问题的,但在两点内,线可以是任何角度。 我已经找到了类似问题的答案,但实际上我不明白。有人会向我解释这种计算是如何可能的 - 用简单的语言描述吗?请解释你在做什么,因为我想理解它,而不仅仅是复制它。如果您编写代码,请给变量起个好名字。我知道编写单个字符名称会更快,但我并不总是知道它们到底是什么。 哦,计算应该是每个像素的像素,因为我认为每 x 步旋转线条并绘制它们非常慢,并且可能导致丑陋的结果(使用抗锯齿的错误颜色,没有楼梯的楼梯)。 我希望我不要问太多,但正如我所说,我真的很想了解它是如何工作的,如果我不得不猜测,那就很难了。变量名是什么意思..
【问题讨论】:
-
" 我已经找到了类似问题的答案,但实际上我不明白。" 请链接问题。它可能会为潜在的回答者提供灵感:-)
标签: java algorithm processing gradient