2016-01-31 2 views

ответ

1

«Под кривой» немного расплывчато.

Если вы можете нарисовать кривую, вы можете заполнить кривую. Когда кривая заполнена, конечные точки будут соединены, чтобы сделать закрытую форму.

Вы можете создать 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); 
    } 
} 
Смежные вопросы