谁能告诉我如何为曲线下的区域着色?我已经使用Graphics2d绘制了一条曲线,但是不知道如何为其区域着色。
提前致谢
最佳答案
“曲线下”有点模糊。
如果可以绘制曲线,则可以填充曲线。填充曲线时,将连接端点以形成闭合形状。
您可以创建一个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);
}
}