86 lines
2.6 KiB
Java
86 lines
2.6 KiB
Java
|
import java.awt.*;
|
||
|
import java.awt.geom.*;
|
||
|
|
||
|
/**
|
||
|
* Der Buchstabe D wird mittels eines GeneralPath erzeugt und die verwendeten
|
||
|
* Kontrollpunkte gezeichnet.
|
||
|
*
|
||
|
* @author Frank Klawonn
|
||
|
* Letzte Aenderung 01.02.2005
|
||
|
*/
|
||
|
public class SimpleLetterDColour extends Frame
|
||
|
{
|
||
|
|
||
|
//Konstruktor
|
||
|
public SimpleLetterDColour()
|
||
|
{
|
||
|
//Ermoeglicht das Schliessen des Fensters
|
||
|
addWindowListener(new MyFinishWindow());
|
||
|
}
|
||
|
|
||
|
|
||
|
public void paint(Graphics g)
|
||
|
{
|
||
|
Graphics2D g2d = (Graphics2D) g;
|
||
|
//Verwendung von Antialiasing, um die Raender weniger ausgefranst
|
||
|
//erscheinen zu lassen
|
||
|
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);
|
||
|
//Die Linien sollen eine Dicke von 3.0 statt 1.0 haben.
|
||
|
BasicStroke bs = new BasicStroke(3.0f);
|
||
|
g2d.setStroke(bs);
|
||
|
//Die Kontrollpunkte, mit denen der Buchstabe definiert wird
|
||
|
int xd1 = 50;
|
||
|
int yd1 = 50;
|
||
|
int xd2 = 50;
|
||
|
int yd2 = 450;
|
||
|
int xd3 = 400;
|
||
|
int yd3 = 250;
|
||
|
int xd4 = 50;
|
||
|
int yd4 = 450;
|
||
|
int xd5 = 50;
|
||
|
int yd5 = 250;
|
||
|
//Definition und Zeichnen der beiden Kurven, die den Buchstaben definieren
|
||
|
QuadCurve2D.Double d1 = new QuadCurve2D.Double(xd1,yd1,xd3,yd3,xd2,yd2);
|
||
|
g2d.draw(d1);
|
||
|
QuadCurve2D.Double d2 = new QuadCurve2D.Double(xd1,yd1,xd5,yd5,xd4,yd4);
|
||
|
g2d.draw(d2);
|
||
|
//Zeichnen der Kontrollpunkte in unterschiedlichen Farben
|
||
|
g2d.setPaint(Color.blue);
|
||
|
drawSmallRect(xd1,yd1,g2d);
|
||
|
g2d.setPaint(Color.green);
|
||
|
drawSmallRect(xd2-3,yd2,g2d);
|
||
|
g2d.setPaint(Color.magenta);
|
||
|
drawSmallRect(xd3,yd3,g2d);
|
||
|
g2d.setPaint(Color.red);
|
||
|
drawSmallRect(xd4+3,yd4,g2d);
|
||
|
g2d.setPaint(Color.yellow);
|
||
|
drawSmallRect(xd5,yd5,g2d);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* Eine Methode zum Zeichnen eines kleinen Quadrats
|
||
|
*
|
||
|
* @param x x-Koordinate der oberen linken Ecke des Quadrats
|
||
|
* @param y y-Koordinate der oberen linken Ecke des Quadrats
|
||
|
* @param g2d Graphics2D-Objekt, auf das gezeichnet werden soll.
|
||
|
*/
|
||
|
public static void drawSmallRect(int x, int y, Graphics2D g2d)
|
||
|
{
|
||
|
Rectangle rect = new Rectangle(x-4,y-3,8,8);
|
||
|
g2d.fill(rect);
|
||
|
}
|
||
|
|
||
|
|
||
|
public static void main(String[] argv)
|
||
|
{
|
||
|
SimpleLetterDColour f = new SimpleLetterDColour();
|
||
|
f.setTitle("Der Buchstabe D");
|
||
|
f.setSize(420,500);
|
||
|
f.setVisible(true);
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|
||
|
|