BTU Cottbus
Institut für Informatik
Prof. Dr. W. Kurth, Dr. E. Roth

Computergraphik, WS 2001/02
Übungsblatt 0
(keine Abgabe, keine Wertung)

Aufgabe 1 (Koordinatendarstellungen geometrischer Objekte)
(a) Zeichnen Sie die Menge, die durch


beschrieben wird.

Geben Sie Beschreibungen in Mengenschreibweise an für
(b) das Dreieck mit den Eckpunkten (0; 1), (4; 0) und (2; 5),
(c) einen zur z-Achse parallelen Zylinder mit aufgesetzter Halbkugel: Der Mittelpunkt der Zylinder-Grundfläche sei (x0, y0, z0), die Höhe des Zylinders h, die Radien beider Körper seien r.

Aufgabe 2 (Geradendarstellung)
Welche Formen der Geradengleichung im R2 sind Ihnen geläufig? Welche Ausnahmefälle wären bei einer Implementation als Zeichenalgorithmus jeweils abzufangen? Sind spezielle Geraden nicht darstellbar?

Aufgabe 3 (lineare Abbildungen und Matrizen)
Die folgenden Transformationen der Ebene sind lineare Abbildungen:
f1: Spiegelung an der Winkelhalbierenden y = x ;
f2: Rotation um den Winkel a um den Koordinatenursprung;
f3: isotrope, zentrische Streckung um den Faktor c (¹ 0) vom Ursprung aus;
f4: Scherung entlang der x-Achse mit ;
f5: Projektion entlang der Winkelhalbierenden y = x auf die y-Achse.

  1. Welche fi sind flächentreu, welche sind singulär? Geben Sie im letzteren Fall Kern und Bildraum an.

  2. Geben Sie für jede der Transformationen die Matrix-Darstellung Mi an. (Spaltenvektor-Notation: .)

  3. Berechnen Sie die Matrix der Komposition f1° f2° f4.
  4. Bestimmen Sie die inverse Matrix zu M4.

Aufgabe 4 (Ellipsendarstellung)

  1. Wie lautet die Achsenabschnittsform der Ellipsengleichung (Hauptachsen = Koordinatenachsen, Mittelpunkt im Ursprung) in kartesischer Form und in Parameterform (Parameter a = Winkel im Ursprung)?

  2. Wie lautet die Parametergleichung einer um den Winkel b gedrehten Ellipse mit Mittelpunkt (x0, y0)?

  3. Welchen Nachteil hat die Verwendung der Parameterform mit äquidistanter Wahl von Parameterwerten a zwischen 0° und 360° beim Zeichnen von Ellipsen durch Annäherung mit Geradensegmenten?

Aufgabe 5 (Rasterdarstellung von Geraden)
Es soll die Strecke zwischen (x1, y1) und (xn, yn) in einem Raster (Pixelgraphik) gezeichnet werden. O.B.d.A. seien Länge und Höhe eines Pixels = 1, die Steigung m der darzustellenden Linie () liege zwischen 0 und 1, es sei x1 < xn. set_pixel(x,y,v) sei eine Bibliotheksfunktion in C, die Pixel (x, y) auf den Intensitätswert v setzt.

  1. Man betrachte den folgenden "naiven" Algorithmus zum Zeichnen der Linie, der für alle ganzzahligen x-Werte xi zwischen x1 und xn den Wert yi = mxi + b berechnet und das Pixel (xi, round(yi)) setzt:

  2. void line(int x1, int y1, int xn, int yn, int v)
    {
    int x; float m, b;
    m = ((float)(yn-y1))/(xn-x1);
    b = y1 - m*x1;
    for (x=x1; x<=xn; x++)
    set_pixel(x, round(m*x+b), v);
    }
    Wieviele Floating-Point-Operationen (und welche) gibt es in der Schleife?

  3. Man entwickle eine erste Verbesserung durch Ausnutzung von yi+1 = yi + m ("inkrementeller Algorithmus"). Was hat sich hinsichtlich der Komplexität verbessert?
  4. Die Rundungsoperation (round) lässt sich durch Einführen einer Variablen error vermeiden. Wenn (x, y) das zuletzt gesetzte Pixel ist, soll error angeben, um wieviel das Pixel (x+1, y) von der idealen Linie abweicht. error erhöht sich bei jedem Schritt zunächst um m. Wenn error £ 0,5 ist, liegt (x+1, y) näher an der idealen Linie als (x+1, y+1) und wird daher gesetzt. Sonst wird (x+1, y+1) gesetzt und error zusätzlich um 1 vermindert. Formulieren Sie hiermit eine weitere Verbesserung der obigen C-Funktion.
  5. (Bresenham-Algorithmus) Eliminieren Sie nun die Floating-Point-Operationen gänzlich, indem Sie m, error und die zugehörige Auswahlbedingung für die Pixel mit dx = xn - x1 skalieren und dx/2 durch den Integerwert floor(dx/2) ersetzen.

 

Zur Startseite der Vorlesung

 

Letzte Änderungen: 07. 10. 2001