【发布时间】:2013-04-10 13:27:32
【问题描述】:
所以有一个问题涉及 Java 中的线性渐变,使用多种颜色。我希望在渐变的任何一点上获得 RGB 颜色。创建渐变和绘画很容易,我可以得到我设置的那些颜色的分数和颜色.....
我遇到的问题是我想在渐变的任何点上获得 RGB 颜色。 分解它,一个示例应用程序是在一些 JPanel 中创建和显示渐变,大小为 255(maxSize=255(见下文))。根据所述 JPanel (maxSize) 的大小,插值会有所不同(maxSize 中的数字越大,插值越多)。 我希望能够在渐变的任何位置获取 RGB 值, 您几乎可以将其等同于能够执行以下操作...
根据渐变中的位置抓取RGB值
RGB_Values = p.getColorByGradientLocation(float locationInGradient);
或
根据特定值获取 RGB 值,介于 Point2D start 和 Point2D end 之间
RGB_Values = p.getColorByValue(float value);
例如设置渐变代码
Point2D start = new Point2D.Float(0, 0);
Point2D end = new Point2D.Float(0, maxSize);
Color[] colors = {n number of colors};
dist[] = ((float) i / (float) colors.length); //equally distributes colors
p = new LinearGradientPaint(start, end, dist, colors, CycleMethod.NO_CYCLE);
非常感谢
【问题讨论】:
-
为标签上的编辑干杯......我可能知道如何排序......可能不是正确的方式......STACKOVERFLOW用户我会和你比赛:)
-
这个post 可能会有所帮助。
-
嗨 Nolo,这是你的帖子,我已经找到答案,将作为答案发布
标签: java colors awt linear-gradients