所以有一个问题涉及Java中的线性渐变,使用多种颜色。我希望在渐变的任何一点上获得 RGB 颜色。创建渐变和绘画很容易,我可以得到我设置的那些颜色的分数和颜色.....
我遇到的问题是我想在渐变的任何点获得 RGB 颜色。分解它,一个示例应用程序将是在一些 JPanel 中创建和显示渐变,大小为 255(maxSize=255(见下文))。根据所述 JPanel (maxSize) 的大小,插值会有所不同(maxSize 中的数字越大,插值越多)。我希望能够在渐变的任何位置获取 RGB 值,您几乎可以将其等同于能够执行以下操作...
根据渐变中的位置抓取 RGB 值
RGB_Values = p.getColorByGradientLocation(float locationInGradient);
或者
根据特定值获取 RGB 值,介于 Point2D 开始和 Point2D 结束之间
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);
非常感谢