0
任何人都可以告诉我如何为曲线下的区域着色吗?我使用Graphics2d绘制了一条曲线,但不知道如何为其区域着色。 在前提前感谢使用java着色曲线下方的区域
任何人都可以告诉我如何为曲线下的区域着色吗?我使用Graphics2d绘制了一条曲线,但不知道如何为其区域着色。 在前提前感谢使用java着色曲线下方的区域
“在曲线下”有点含糊。
如果您可以绘制曲线,则可以填充曲线。当曲线被填充时,端点将被连接以形成闭合形状。
您可以创建一个允许您绘制任何东西的GeneralPath,如具有曲线并包含视图区域底部的形状。
我提供了两个例子。
package draw;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.GeneralPath;
import java.awt.geom.QuadCurve2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
class MyCanvas extends JComponent {
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
QuadCurve2D q = new QuadCurve2D.Float();
q.setCurve(10, 30, 10, 200, 100, 100);
g2.draw(q);
g2.fill(q);
GeneralPath closedCurve = new GeneralPath();
QuadCurve2D q2 = new QuadCurve2D.Float();
q2.setCurve(0, 200, 150, 150, 300, 200);
closedCurve.moveTo(0, 300);
closedCurve.lineTo(0, 200);
closedCurve.append(q2, true);
closedCurve.lineTo(300, 300);
closedCurve.closePath();
g2.draw(closedCurve);
g2.fill(closedCurve);
}
}
public class DrawArc {
public static void main(String[] a) {
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setBounds(30, 30, 300, 320);
window.getContentPane().add(new MyCanvas());
window.setVisible(true);
}
}
'Graphics2D#fill'? – MadProgrammer