Bézier-Kurve

14. Info
Verfügbare Informationen zu "Bézier-Kurve"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: timo
  • Forum: 14. Info
  • Forenbeschreibung: Informatiker der NTA-Isny
  • aus dem Unterforum: Java
  • Antworten: 1
  • Forum gestartet am: Donnerstag 15.06.2006
  • Sprache: deutsch
  • Link zum Originaltopic: Bézier-Kurve
  • Letzte Antwort: vor 16 Jahren, 9 Monaten, 2 Tagen, 5 Stunden, 20 Minuten
  • Alle Beiträge und Antworten zu "Bézier-Kurve"

    Re: Bézier-Kurve

    timo - 24.07.2007, 22:11

    Bézier-Kurve
    Bézier-Kurve

    Schreibt ein Programm in Java, welches eine Bézier-Kurve mit beliebig vielen Stützpunkten (mindestens 4) darstellen kann.

    Zum darstellen (zeichnen) der Kurve verwendet das Graphics Objekt in der paint-Methode eines JPanels.

    Die mitgelieferte Klasse BezierCurve enthält einige Funktionen und Kommentare, welche als Anhaltspunkte für die Implementierung verwendet werden können.

    Als Beispiel können die mitgelieferten class-Files mit Hilfe der bat-Datei start.bat gestartet werden.


    start.bat
    java BezierCurve


    BezierCurve.java
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;

    public class BezierCurve extends JPanel implements MouseListener
    {
    private Punkt[] punkte;
    private int punkteAnzahl = 0;

    public BezierCurve()
    {
    punkte = new Punkt[punkteAnzahl];

    addMouseListener(this);

    JFrame frame = new JFrame();
    frame.setSize(1000,500);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(this);
    frame.setVisible(true);

    }

    long fakultaet(int fak)
    {
    long returnValue = 1;

    for(long i = fak; i > 1; i--)
    {
    returnValue *= i;
    }

    return(returnValue);
    }

    double nUeberI(int n, int i)
    {
    return(fakultaet(n)/(fakultaet(i)*fakultaet(n-i)));
    }

    public void paint(Graphics g)
    {
    g.setColor(Color.WHITE); // Fpllt das Fenster Weiss aus
    g.fillRect(0, 0, getSize().width, getSize().height);

    g.setColor(Color.BLACK);

    for(int i = 0; i < punkteAnzahl-1; i++) // Zeichnet Verbindungslinien zwischen den Punkten
    {
    g.drawLine((int)punkte[i].x, (int)punkte[i].y, (int)punkte[i+1].x, (int)punkte[i+1].y);
    }


    g.setColor(Color.RED);
    // Ab hier soll die Bezier-Kurve gezeichnet werden
    // Erstellt dazu eine Schleife die einen Parameter u von 0 bis 1 in Abständen von 0.01 laufen lässt
    // Zeichnet einen errechneten Punkt der Kurve mit drawRect(.x, .y, 2, 2)

    }

    /* MouseListener */
    public void mouseClicked(MouseEvent e)
    {
    punkteAnzahl++;
    Punkt[] newPunkte = new Punkt[punkteAnzahl];

    for(int i = 0; i < punkteAnzahl-1; i++)
    {
    newPunkte[i] = punkte[i];
    }

    punkte = newPunkte;

    punkte[punkteAnzahl-1] = new Punkt((double)e.getX(),(double)e.getY(),0.0);

    repaint();
    }

    public void mousePressed(MouseEvent e){}

    public void mouseReleased(MouseEvent e){}

    public void mouseEntered(MouseEvent e){}

    public void mouseExited(MouseEvent e){}


    public static void main(String[] args)
    {
    new BezierCurve();
    }
    }


    Punkt.java
    public class Punkt
    {
    public double x;
    public double y;
    public double z;
    public double w;

    public Punkt()
    {
    }

    public Punkt(double xWert, double yWert, double zWert)
    {
    x = xWert;
    y = yWert;
    z = zWert;
    w = 1;
    }
    }



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum 14. Info

    Änderungen Klausur- und Raumplan - gepostet von timo am Montag 16.07.2007
    WIKIs - gepostet von ravekev am Mittwoch 29.11.2006
    wo ist der prüfungsplan ws 06/07 online? - gepostet von Tobi am Freitag 05.01.2007
    Wichtig! - gepostet von Onas am Dienstag 20.06.2006
    Wichtig!!! Stundenplanänderung für 04.10.2006 - gepostet von timo am Donnerstag 28.09.2006
    Medientechnik - gepostet von Maggi am Donnerstag 01.02.2007
    Stellensuche per Zeitung - gepostet von timo am Mittwoch 26.07.2006



    Ähnliche Beiträge wie "Bézier-Kurve"

    Schumi erhält Kurve am Nürburgring - starbuck77 (Sonntag 25.03.2007)
    Buch "Gaskrank, Geschichten aus der Kurve" - Boko (Donnerstag 30.11.2006)
    Günters Kurve - Bado (Dienstag 14.08.2007)
    Politik in der Kurve... - South_Winner/BVAW03 (Samstag 18.03.2006)
    was is mit der kurve *heul* - lammgottes (Donnerstag 30.11.2006)
    Achtung die Kurve (Weltmeisterschaft) - betty (Donnerstag 07.10.2004)
    Frauen in der Kurve , damit die Kurve lebt ?! - daniel (Montag 27.08.2007)
    FX18 - GAS/PITCH KURVE - joa42 (Samstag 17.06.2006)
    Xtreme die kurve Kratzen!!! - Zero (Montag 27.03.2006)
    MX-12 Pitch Gas Kurve??? - Makis (Freitag 24.03.2006)