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