0
我无法找到解决此问题的解决方案。 我想绘制一个用Java填充的三角形,每个角落都有不同的颜色。事情是这样的:用Java中的3色渐变填充三角形
我发现了一些网上的帖子,但我无法弄清楚如何做梯度的Java。问题是,在Java中,只能从一种颜色到另一种颜色执行GradientPaint,这不适合填充三角形。
到目前为止,我想出了这个代码不按预期方式工作:
triangle.p1().getValue();
Color color1 = calculateColor(triangle.p1().getValue());
Color color2 = calculateColor(triangle.p2().getValue());
Color color3 = calculateColor(triangle.p3().getValue());
Color transparent = new Color(0, 0, 0, 0);
Polygon polygon = new Polygon(
new int[]{(int) triangle.p1().x(), (int) triangle.p2().x(), (int) triangle.p3().x()},
new int[]{(int) triangle.p1().y(), (int) triangle.p2().y(), (int) triangle.p3().y()},
3);
GradientPaint gradient1 = new GradientPaint(
(float) triangle.p1().x(), (float) triangle.p1().y(), color1,
(float) triangle.p2().x(), (float) triangle.p2().y(), transparent);
GradientPaint gradient2 = new GradientPaint(
(float) triangle.p2().x(), (float) triangle.p2().y(), color2,
(float) triangle.p3().x(), (float) triangle.p3().y(), transparent);
GradientPaint gradient3 = new GradientPaint(
(float) triangle.p3().x(), (float) triangle.p3().y(), color3,
(float) triangle.p1().x(), (float) triangle.p1().y(), transparent);
graphics2d.setPaint(gradient1);
graphics2d.fill(polygon);
graphics2d.setPaint(gradient2);
graphics2d.fill(polygon);
graphics2d.setPaint(gradient3);
graphics2d.fill(polygon);
提及类似的事情,某些线程: Triangle Gradient With Core Graphics和Java 3 Color Gradient
你有什么问题?你有一个很好的解释,即使是一些示例代码。有没有错误?是你的代码(请张贴一些)不工作?或者你陷入了一个特定的细节?请更具体一点。 – n247s
我更新了问题描述并添加了一些代码。 – matomato
你用这段代码得到了什么结果,你可以添加一个当前结果的屏幕截图吗? (我的葡萄牙人会在三角形的中间插入白色的?) – n247s