Grafikprogrammierung

Slides:



Advertisements
Ähnliche Präsentationen
Freie Universität Berlin Institut für Informatik
Advertisements

Steigung m berechnen Man kann die Steigung auch berechnen,
Denavit u. Hartenberg - Beschreibung
verweis-sensitive Grafiken
Marco Barz Seminar über Algorithmen SoSe2007
Zeichnen für Anfänger -für das Zeichnen benutzten wir das Programm „Autosketch“ Dafür gehen wir in das Startmenü, dann auf Programm und danach auf Autosketch.
Tina John Ebenen und Links in Sprachdatenbanken. Ebenen = Symbole werden mit der Zeit in einer Ebene verbunden. Namen der Ebenen Symbole der Word-Ebene.
FH-Hof Einbindung von JavaScript Anweisungen
Java2D Richard Göbel.
Sortierverfahren Richard Göbel.
FH-Hof Java 2D - Kontext für Zeichenoperationen Richard Göbel.
Ein Beispiel in Java.
Polymorphie (Vielgestaltigkeit)
Polymorphie (Vielgestaltigkeit)
Sommersemester 2003 Lars Bernard
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 8 Sitzung 8: Zeichnen in Java.
2D-Visualisierung von Daten
Java-Kurs Grafik Julian Drerup.
Programmieren mit JAVA Teil V. Grafikausgabe mit JAVA, das AWT Java wurde von Anfang an mit dem Anspruch entwickelt, ein vielseitiges, aber einfach zu.
Die Seevermessung Kl.8 Reflexives Magnetthema
So animieren Sie Kreisdiagramme mit der Eingangs-Animation „Rad“
DVG1 - Grafikprogrammierung1 Grafikprogrammierung.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
10-Graphics2D Graphics2D. 10-Graphics2D2 Eigenschaften von Graphics2D Trennung zwischen Userkoordinaten und Gerätekoordinaten Beliebige Transformation.
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Dieter Bergmann, Lichtenfels
Computergrafik Begriff: Was ist Computergrafik?
Estellen eines Sechskantes mit Abschrägung und Durchbruch
Heute: Scherenzange zeichnen
Punktbeschriftung mit vier Rechtecken gleicher Höhe (Anzahlmaximierung) Julia Löcherbach.
FH-Hof Java2D - Grundlagen Richard Göbel. FH-Hof Java2D - Funktionen Java2D unterstützt: das Zeichnen von Grafiken die Darstellung von Texten die Darstellung.
Delphi Eine objektorientierte Programmiersprache © Beushausen 2000.
Eine Bewerbung schreiben
Grafikformate Nicolas Ruh.
FHP - Fachbereich Bauingenieurwesen
Computergraphik mit OpenGL Einführung. Bilder Objekt existiert im Raum unabhängig vom Betrachter Objekte sind beschrieben durch die Position verschiedener.
Delphi II - OOP IFB Fortbildung
Java ohne Kara. Java ohne Kara Ab jetzt: Java ohne Kara Ziel: Erfahrungen sammeln mit ersten Java Programmen.
AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG
Delphi TCanvas Informatik-AG. TCanvas Viele der sichtbaren in Delphi vorhanden Objekte besitzen die Eigenschaft Canvas. Übersetzt heißt Canvas Leinwand.
Ändern von Merkmalen Geometrie Topologie Attribute.
Das Paint-Anwendungsfenster
Implementierung des Algorithmus von Dijkstra
Modellierung grafischer Objekte
Bildbearbeitung Nicolas Ruh.
Grundlagen von Objekt-Pascal Erstellt von J. Rudolf überarbeitet von H.Brehm.
Übungen zum 2. Tag unter dem Motto Events
Programmierpraktikum Java SS 2005
Arbeit mit EOS von Martin Pabst
Visual Design mit Processing Übung Visualisierung semantischer Information.
Praxismodul 7 Agenda für heute, 15. Juni, 2006 Dateiformate
Erste Schritte in DELPHI
Delphi Informatik-AG.
Programmiervorkurs WS 2014/15 Instanzmethoden
Polymorphie (Vielgestaltigkeit). Wenn eine Methode, wie z.B. print für verschiedene Programmteile steht (und z.B. einmal Objekte verschiedener Klassen.
(X)HTML und Tags. HTML - XHTML HTML wird seit 1999 nicht mehr weiterentwickelt. XHTML basiert auf XML und befolgt XML Syntaxregeln. Im weiteren Kursverlauf.
1 VeranstaltungThemaTeilnehmerBetreuer AINF-Lehrgang PROGRAMMIEREN Martina GREILER Wolfgang KATOLNIG Peter RENDL Helfried TUISEL Peter ZYCH Heinz STEGBAUER.
1 BALLSPIELEREI Zur Laufzeit soll die Kreisscheibe mittels Schieberegler über das ganze Formular bewegt werden können. Einführung in Komponenten und Ereignisprozeduren.
A&D Persa K TB Herzlich Willkommen zum Flash 4 - Seminar.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Grafikformate Nicolas Ruh.
MAYA K. Canvas-Projekt. In HTML- body: Canvas tag öffnen seamntsiches HTML) Canvas bekommt eine id (1mal verwenden, mit # angesprochen) Höhe und breite.
Objektorientierte Programmierung (OOP)
Objektorientierte Programmierung §Klassen §Objekte §Attribute §Eigenschaften §Methoden §Datenkapselung §Ereignisse §Vererbung §Entwicklungszeit §Laufzeit.
1 Grundsätze objektorientierter Programmierung. Dr. Wolfram Amme, Grundsätze objektorientierter Programmierung, Informatik II, FSU Jena, SS Objektorientierte.
Vererbung in Java. public abstract class Form { protected int breite; protected int hoehe; protected String farbe; /** * Erzeuge eine Form der Breite.
Objektorientiertes Modellieren und Programmieren mit Java
Units und Übung 7 Barbara Scheuner
Java-Kurs Übung Grafik in Java - das Abstract Windowing Toolkit
Grafikformate Nicolas Ruh.
 Präsentation transkript:

Grafikprogrammierung Delphi Grafikprogrammierung Ein Vortrag von Thomas Götze und Karsten Wolf

Problem: Wie kann ein Bild oder eine reale Situation in den Speicher eines Computers abgebildet (digitalisiert) werden? Möglichkeit 1 - Pixelgrafik: Aufbau des Bildes (Rasterung) aus Punktobjekten gleicher Größe, sog. Pixel. Jedes Pixel hat bestimmte Eigenschaften (Attribute), z. B. x-Position, y-Position oder Farbe, die mit Werten belegt werden. Möglichkeit 2 - Vektorgrafik: Aufbau des Bildes aus Grafikobjekten variabler Größe und Form (Vektorisierung). Jedes Objekt kann durch Anweisungen (Prozeduren), z.B. Zeichne Linie im Winkel 45°, 200 Einheiten lang, und Eigenschaften (Attribute), z.B. Linienbreite oder Farbe, beschrieben werden.

Theoretische Grundlagen Das Canvas-Objekt Das Koordinatensystem Linien und Stifte Farben, Muster und Pinsel Grundlegende Zeichenfunktionen Koordinatentransformation

Das Canvas- Objekt Ein zentrales Objekt der Grafikausgabe mit Delphi ist immer eine Zeichenfläche (Leinwand) der Klasse TCanvas.

Um Grafiken auf dem Bildschirm auszugeben, wird eine Komponente benötigt, welche die Eigenschaft Canvas besitzt, also eine Zeichenfläche. Zu diesen Komponenten gehören die Forms (die späteren Windows-Fenster), die Paintbox, die Image-Komponente und der Drucker. Am einfachsten zu benutzen ist davon die Image-Komponente, weil man sich bei dieser nicht um das Wiederherstellen der Zeichnung kümmern muss, wenn z.B. die Größe des Fensters verändert oder dieses von einem anderen Fenster überlagert wurde. Wir werden sie deshalb fast immer benutzen.

TCanvas stellt Eigenschaften, Ereignisse und Methoden zur Verfügung, die beim Erzeugen von Bildern hilfreich sind, indem sie: • die Art des verwendeten Pinsels und Stiftes sowie die Schriftart festlegen. • eine Vielzahl von Formen und Linien zeichnen und füllen. • Text ausgeben. • Grafiken zeichnen. • eine Reaktion auf Änderungen am aktuellen Bild ermöglichen.

Einige Delphikomponenten enthalten diese „Leinwand“, auf der gezeichnet werden kann. Am einfachsten zu benutzen ist die Image-Komponente (unter zusätzlich).

Canvas.Pen Im TCanvas-Objekt sind noch folgende Objekte enthalten: Pen.Width Pen.Color Pen.Style

Canvas.Brush Brush.Color Brush.Style

Canvas.Font Font.Name Font.Color Font.Style Font.Size Beispiel: Der Schrift einer Image-Komponente wird rot zugewiesen. Form1.Image1.Canvas.Font.Color:= clRed;

Das Koordinatensystem =Form1.clientwidth 0,0

0,0 !!!Positive y-Werte werden nach unten abgetragen!!!!

Beispiel: Zentrierung der Image-Komponente innerhalb eines Formulars. Image1.left:=(Form1.clientwidth – Image1.width) div 2; Image1.top:=(Form1.clientheight – Image1.Height) div 2

Farben, Muster und Pinsel Windows verwaltet die Farben über das RGB (Rot – Grün – Blau )-Modell. Die Farbe kann u.a. über die ColorDialog – Komponente auswählen. Delphi besitzt aber auch zahlreiche vordefinierte Farben, welche mit dem Kürzel cl beginnen. clRed Rot clBlack Schwarz clSilver Silbergrau clGreen Grün

ColorDialog - Colordialog – Komponente aus Register Dialoge wählen. - Aufruf des Dialoges zur Laufzeit mit der Execute – Methode. - ColorDialog1.Execute; Den Rückgabewert verwenden: Image1.Canvas.Brush.Color:=Colordialog1.Color;

Füllungen bsSolid bsClear bsBDiagonal bsFDiagonal bsCross bsDiagCross Brush.Style Brush.Color bsSolid bsClear bsBDiagonal bsFDiagonal bsCross bsDiagCross bsHorizontal bsVertical

Linien und Stifte Eigenschaft Objekt Beschreibung Linienbreite Pen.Width ...in Pixeln Linientyp Pen.Style ... nur wenn Pen.Width =1

Pen.Style psSolid psDash psDot psDashDot psDashDotDot psClear

Grundlegende Zeichenfunktionen

Punkt Punkte werden mit Hilfe der Pixel – Eigenschaft gesetzt. x-> 0,0 Canvas.Pixels[x,y]:=farbe; y Canvas.Pixels[7,9]:=clBlack; Bem.: Farbe kann somit auch gelesen werden: var farbe: TColor; farbe:= Canvas.Pixels[7,9];

Linie Zuerst wird der Startpunkt mit MoveTo festgelegt. Gezeichnet wird von dieser Position mit LineTo, die den Endpunkt bestimmt. Canvas.MoveTo(x1,y1); Canvas.LineTo(x2,y2); x2,y2 x1,y1 Image1.Canvas.MoveTo(10,10); Canvas.LineTo(100,100)

Kreis, Ellipse Es werden die linke obere und die rechte untere Ecke des umrahmenden Rechtecks festgelegt. Der Kreis wird als Spezialfall der Ellipse angesehen. Canvas.Ellipse(x1,y1,x2,y2) x1,y1 x2,y2 Oder Kreis mit Mittelpunkt x1, y1 und Radius r: canvas.ellipse(x1-r,y1-r,x1+r,y1+r)

Rechteck Canvas.Rectangle(x1,y1,x2,y2) x1,y1 x2,y2

abgerundetes Rechteck Die Ecken werden als Ellipsenviertel der Breite x3 und der Höhe y3 dargestellt. Ist Brush.Stile <>bsClear, wird das Rechteck mit dem aktuellen Pinsel gefüllt. Canvas.RoundRect(x1,y1,x2,y2,x3,y3:Integer; x1,y1 y3 x3 x2,y2 canvas.Roundrect(10,10,100,100,10,5);

Segment x3,y3 x1,y1 x2,y2 x4,y4 Die Methode Pie zeichnet ein Segment, das durch eine Ellipse und zwei Linien begrenzt wird. Für Brush.Style<> bsClear wird das Segment gefüllt. Canvas.Pie(x1,y1,x2,y2,x3,y3,x4,y4); Canvas.Pie(0,0,500,400,0,250,400);

Bogenstück x1,y1 x3,y3 x2,y2 x4,y4 Die Methode Arc zeichnet nur den Bogen, nicht die Verbindungen zum Ellipsenmittelpunkt. Keine Füllung. Canvas.Arc(x1,y1,x2,y2,x3,y3,x4,y4)

Kreisstück x3,y3 x1,y1 x2,y2 x4,y4 Mit der Chord-Methode wird der Teil des Kreises gezeichnet, der durch eine Sehne abgeteilt ist. Canvas.Chord(x1,y1,x2,y2,x3,y3,x4,y4)

Mehrfachlinie x2,y2 x5,y5 x1,y1 x4,y4 x3,y3 Ähnlich zur Linie, werden jedoch mehrere Punkte auf einmal übergeben. Canvas.Polyline([Point(x1,y1), Point(x2,y2).......]);

var n: array[1..40] of TPoint; n[1].x:=10; n[1].y:=15; ...... Canvas.Polyline(n);

N-Eck (Polygon) x3,y3 x2,y2 x1,y1 ..... x4,y4 Mit der Polygon-Methode kann ein gefülltes n-Eck gezeichnet werden. Canvas.Polygon([Point(x1,y1), Point(x2,y2).....]);

Texte Die Methode TextOut ist die einfachste Methode, einen Text auf den Bildschirm zu bringen. Canvas.TextOut(x,y,Text); Canvas.TextOut(100,100,‘Wort‘);

Konvertieren der Koordinaten Probleme: Der Ursprung des math. Koordinatensystems liegt meist in der Mitte des beschriebenen Blattes, auf dem Bildschirm liegt er in der linken oberen Ecke des Canvas. Die y-Achse ist beim math. Koord.s. nach oben gerichtet, auf dem Bildschirm aber nach unten. Die Längeneinheit ist in m. Ks. durch das Intervall von Null bis Eins gegeben, auf dem Bildschirm beträgt sie ein Pixel.

Canvas x0:= image1.width Div 2; y0:= image1.Hight Div 2; x1:= yp y0 1 x0:= image1.width Div 2; y0:= image1.Hight Div 2; x1:= x0+x0 div 3; y1:= y0-y0 div 3; x0 xp x1

1 y x 1

Anwendungsbeispiele Standardfunktionen Funktion

Quellen Programmieren lernen in Borland Delphi 6 Hanser Verlag