Fraktale und Mausklick

Hallo an alle,
und zwar sollen wir das Mandelbrot Fraktal in Bloodshed C++ programmieren. Als Windows Applikation mit C. Wenn man mit der linken Maustaste auf einen Punkt klickt, soll er dorthin zoomen und den Bereich neu zeichnen, mit Rechtsklick soll er wieder in die Ursprungsgröße gehen.
Leider hab ich bis jetzt absolut keine Ahnung wie ich das anpacken soll, hab von C mit Windows Applikationen keine Ahnung.
Folgende Sachen haben wir bekommen:

WM_PAINT // Fenster soll neu gezeichnet werden
WM_LBUTTONDOWN // Linke Maustaste wurde gedrückt
WM_LBUTTONUP // Linke Maustaste wurde losgelassen
WM_RBUTTONDOWN // Rechte Maustaste wurde gedrückt
WM_SIZE // Die Fenstergröße hat sich verändert

Bin dankbar über jede Hilfe, auch Tutorials oder Quelltexte in die ich mich reinarbeiten kann!

Vielen Dank!

Hallo

und zwar sollen wir das Mandelbrot Fraktal in Bloodshed C++
programmieren. Als Windows Applikation mit C. Wenn man mit der
linken Maustaste auf einen Punkt klickt, soll er dorthin
zoomen und den Bereich neu zeichnen, mit Rechtsklick soll er
wieder in die Ursprungsgröße gehen.
Leider hab ich bis jetzt absolut keine Ahnung wie ich das
anpacken soll, hab von C mit Windows Applikationen keine
Ahnung.

Du hast damit drei Aufgaben:

  1. Die Berechnung der Mandelbrotmenge in
    einem Programm formulieren und testen
    (unabhängig von Punkt 2),

  2. Einen Win32-Programmrahmen basteln, in dem
    irgendetwas in einem Fenster dargestellt werden
    kann (hat erstmal nix mit 1) zu tun …) und
    welcher auf Mausereignisse reagiert (z.B. um einen
    grünen, blauen oder roten Punkt ins Fenster zu
    zeichnen),

  3. Beide Programme unter Bloodshed 5ß zum Laufen
    bekommen, die Ausgabe von 1) ins Fenster von 2)
    senden und dann beide Module zu einem Programm
    zusammenlinken …

Schau Dir mal die Datei „winfract.c“ in http://www.nahee.com/Software/WinFract_18-21_src.zip an.

Viele Grüße

CMБ

Danke für deine schnelle Antwort.
Hab mir das Beispiel angeschaut und ist doch ein wenig verwirrend für mich, steht enorm viel drin. Kennst du vielleicht durch Zufall ein Beispiel, das ein wenig kürzer oder prägnanter ist?

Danke

Hallo Adrian,

schau mal bei deiner Email rein, da ist eine Vorlage für ein WIN32-Proggy drin.

lg
Martin B

…die „const int“ mussst Du noch durch "#define " eretzen, damit es durch den C-Compiler geht.

Martin B

Hallo,

Hab mir das Beispiel angeschaut und ist doch ein wenig
verwirrend für mich, steht enorm viel drin. Kennst du
vielleicht durch Zufall ein Beispiel, das ein wenig kürzer
oder prägnanter ist?

Erklär mal ein wenig noch dazu. Welchen
Dev-CPP nutzt Du, diesen hier? =>

„Dev-C++ 5.0 beta 9.2 (4.9.9.2) (9.0 MB) with Mingw/GCC 3.4.2“
( http://prdownloads.sourceforge.net/dev-cpp/devcpp-4… )

Wenn das so ist, dann mach mal folgendes:

  • Verzeichnis einrichten (Explorer), z.B.: C:\Projekte\Mandel,

  • Dev-CPP (5.0 beta) starten:

  • File => New => Project => Windows Application

  • [Name:] mandel

  • (*) C-Project

  • [OK]

  • im nächsten Dialogfenster (Create new Project) gehst Du
    oben (Speichern in) in das vorhin erzeugte Verzeichnis c:\Projekte\Mandel
    und drückst unten auf [speichern] (mandel.dev)

  • Dann erscheint wie von Geisterhand ein fertiger Programmrahmen
    „main.c“, den Du ebenfalls abspeicherst.

Jetzt hast Du schon die Voraussetzung für Dein Windows-Programm
vor Dir liegen. Neben der Datei „main.c“ erzeugst Du noch zwei
weitere Dateien:

  • mandel.c => dorthin kommen die Berechnungsroutinen (Windows-unabhängig),

  • winmandel.c => dorthin kommt die Schnittstelle zwischen dem
    Windows-Hauptprogramm und der Mandelbrot-Berechnung

Diese zusätzlichen Dateien erzeugst Du über das Menü

 [File] =\> [New] =\> [Source file]

Die beiden zusätzlichen Dateien bleiben erstmal leer, schreib mal,
wenn Du das hier geschafft hast. Dann müßte bei

[Execute] =\> [Compile & Run]

Dein Programm fehlerfrei gebaut werden und ein weisses Windows-Fenster der Größe 544 x 375 Pixel erscheinen

Grüße

CMБ

Wow, vielen Dank! Echt super Erklärung!