Source wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Parabel zeichnen und den Graphen als Bitmap speichern
Parabel
Der Code zeichnet eine Parabel nach der Funktion (Prozedur) F und speichert ihn auf der
Festplatte als BMP. Eine Parabel ist der Graph einer quadratischen Gleichung.
Der Quellcode kann uneingeschränkt genutzt werden, allerdings wäre es nett wenn ihr mich
per E-Mail informiert.
Für weitere Hilfe zu den Dateien schaut die Dateien selber an oder schreibt mir eine
E-Mail: martin@technopolis.de
So nun noch der obligatorische Hinweis:
Wärend des Testens sind keine Probleme an Hard- oder Software aufgetretten, aber ich
übernehme trotzdem keine Haftung für irgendwelche Schäden an Hard- oder Software dürch
meine Programme!
Nun viel Spass beim Experimentieren!
©2002 by Martin Heller
http://www.technopolis.de
by Martin Heller
F
die Funktion wird zum zeichnen der Parabel verwendet
Proc F
Parameters x%
Declare y%
y% = x% ^2 +n% *20
return y%
EndProc
by Martin Heller
Hauptprogramm
Declare a%, n%
Decimals 0
WindowStyle 26
Window 0, 0 - 750, 730
WindowTitle Parabel
n% = 0
While 1
cls
Kariertes Papier simulisieren
Whileloop 75
UsePen 0, 1, RGB(28, 28, 28)
Line &loop *10, 0 - &loop *10, Height(%Hwnd)
Line 0, &loop *10 - Width(%Hwnd), &loop *10
Wend
Koordinatensystem zeichnen
UsePen 0, 1, RGB(20, 20, 20)
Line 10, Sub(Height(%Hwnd), 100) - Sub(Width(%Hwnd), 10), Sub(Height(%Hwnd), 100) x
Line Width(%Hwnd)/2, 10 - Width(%Hwnd)/2, Sub(Height(%Hwnd), 10) y
TextColor 0, -1
UseFont Courier New, 15, 0, 0, 0, 0
Pfeile
x
Line Sub(Width(%Hwnd), 20), Sub(Height(%Hwnd), 105) - Sub(Width(%Hwnd), 10), Sub(Height(%Hwnd), 100)
Line Sub(Width(%Hwnd), 20), Sub(Height(%Hwnd), 95) - Sub(Width(%Hwnd), 10), Sub(Height(%Hwnd), 100)
DrawText Sub(Width(%Hwnd), 10), Sub(Height(%Hwnd), 100), x
y
Line Sub(Width(%Hwnd)/2, 5), 20 - Width(%Hwnd)/2, 10
Line Width(%Hwnd)/2 +5, 20 - Width(%Hwnd)/2, 10
DrawText Sub(Width(%Hwnd)/2, 15), 10, y
Zahlen
UsePen 0, 1, 0
UseFont Arial, 15, 0, 0, 0, 0
x
Whileloop 35
Line &loop *20 +10, 600 - &loop *20 +10,610
DrawText &loop *20 +5, 610, Str$(-18 +&loop)
Wend
y
Whileloop 34
Line Sub(Width(%Hwnd)/2, 5), &loop *20 +4 - Width(%Hwnd)/2 +5, &loop *20 +4
DrawText Width(%Hwnd)/2 +15, &loop *20 -6, Str$(30 -&loop)
Wend
Parabel zeichnen
Linke
UsePen 5, 0, RGB(31, 31, 31)
LineTo 19*20 -10, 605 -n%*20
While 1
inc a%
UsePen 0, 1, RGB(255, 0, 0)
F a%
Case lt(Height(%Hwnd) -100 -%(0), 0): break
LineTo Width(%Hwnd)/2 -(a% *10), Height(%Hwnd) -100 -%(0), 0
wend
Clear a%
Rechte
UsePen 5, 0, RGB(31, 31, 31)
LineTo 19*20 -10, 605 -n%*20
While 1
inc a%
UsePen 0, 1, RGB(255, 0, 0)
F a%
Case lt(Height(%Hwnd) -100 -%(0), 0): break
LineTo Width(%Hwnd)/2 +(a% *10), Height(%Hwnd) -100 -%(0), 0
wend
clear a%
Textanzeigen
UseFont Courier New, 18, 0, 1, 0, 0
DrawText 4, 4, Parabel für: f(x) = y = x²
Alles auf der Festplatte speichern
SaveBmp C:Eigene DateienParabel.bmp, 0, 0 - Width(%Hwnd), Height(%Hwnd)
waitinput
Wend