fb:porticula NoPaste
Funktionen im Koordinatensystem darstellen(mit Sin & Cos Erweiterung) u.a.m.
Uploader: | ytwinky |
Datum/Zeit: | 16.07.2007 18:09:31 |
'Sin und Cos ergänzt u. etwas mehr :-)) :D ^^
'Die Funktionsdarstellung von Sin u. Cos muß noch verbessert werden..
'möglich, daß es schneller geworden ist..
Declare Sub Koordinaten (xMin As Single, yMin As Single, xMax As Single, _
yMax As Single, nx As Integer, ny As Integer, _
xAchse As String, yAchse As String, Text As String)
Declare Sub ZeichneKurve (x() As Single, y() As Single, n As Integer, _
Farbe As Integer)
Const Schwarz=0, Blau=1, Gruen=2, Rot=4, Lila=5, hell=8, Gelb=14
' ----------------------- Beispielprogramm: ----------------------
Dim As Single x(100), y1(100), y2(100), y3(100), y4(100), y5(100), dx=7/100
Dim As Integer i
'Berechnung der Funktionen y1 = 2^x, y2 = ^3^x, y3 = 4^x (ablegen als Arrays):
For i=0 To 100
x(i)=i*dx-2
y1(i)=2^x(i)
y2(i)=3^x(i)
y3(i)=4^x(i)
y4(i)=Sin(i*dx)*10+50 'ergänzt
y5(i)=Cos(i*dx)*10+50 'ergänzt
Next i
'Graphikfenster öffnen und Koordinatensystem mit Beschriftungen zeichnen:
Screen 12
Color 0, 15
Cls
Koordinaten(-2, 0, 5, 100, 7, 10, "x", "y", _
"y=2^x: rot y=3^x: blau y=4^x: gruen y=sin x: gelb y=cos x: lila")
'Funktionskurven ins Koordinatensystem zeichnen:
ZeichneKurve (x(), y1(), 100, hell+Rot)
ZeichneKurve (x(), y2(), 100, Blau)
ZeichneKurve (x(), y3(), 100, Gruen)
ZeichneKurve (x(), y4(), 100, Gelb)
ZeichneKurve (x(), y5(), 100, Lila)
GetKey
'---------------------- Beispielprogramm Ende ------------------
Sub PrintIt(byVal Zeile As Integer, byVal Spalte As Integer, byRef Was As String)
Locate Zeile, Spalte
?Was
End Sub
Sub Koordinaten(xMin As Single, yMin As Single, xMax As Single, yMax As Single,_
nx As Integer, ny As Integer, xAchse As String, yAchse As String, Text As String)
' Koordinatenfeld mit linearen Achsenteilungen.
' Parameter:
' - xMin ... yMax definieren die Abmessungen des Darstellungsfeldes.
' - nx, ny = Zahl der Achsenabschnitte auf der x- bzw. y-Achse
' - xAchse, yAchse = Beschriftung fuer x-Achse bzw. y-Achse
' - Text = Bildunterschrift.
' Der Graphikbildschirm muß vorher mit SCREEN 12 geöffnet sein!
Dim As Integer AnfZeile=2, AnfSpalte=15, EndZeile=22, EndSpalte=75, i, TextBeginn
Dim As Single ax=0.995*(xMax-xMin)/nx, ay=0.995*(yMax-yMin)/ny, x, y
View (AnfSpalte*8-4, AnfZeile*16-8)-(EndSpalte*8-4, EndZeile*16-8) 'Sichtfenster fuer Koordinatensystem
Window (xMin, yMin)-(xMax, yMax) 'mit Eckpunkten (xmin, ymin), (xmax, ymax)
For i=0 To nx 'Teilung horizontale Achse:
x=xMin+i*ax
Line (x, yMin)-(x, yMax)
Next i
For i=0 To ny 'Teilung vertikale Achse:
y=yMin+i*ay
Line (xMin, y)-(xMax, y)
Next i
'Beschriftung:
PrintIt(AnfZeile, AnfSpalte-Len(Str(yMax))-1, Str(yMax))
PrintIt(EndZeile, AnfSpalte-Len(Str(yMin))-1, Str(yMin))
PrintIt(EndZeile+1, AnfSpalte-.5*Len(Str(xMin)), Str(xMin))
PrintIt(EndZeile+1, EndSpalte-.5*Len(Str(xMax)), Str(xMax))
PrintIt((AnfZeile+EndZeile)/2, AnfSpalte-Len(yAchse)-1, yAchse)
PrintIt(EndZeile+1, (AnfSpalte+EndSpalte)/2-.5*Len(xAchse), xAchse)
PrintIt(EndZeile+3, (AnfSpalte+EndSpalte-Len(Text))/2, Text)
End Sub
Sub ZeichneKurve (x() As Single, y() As Single, n As Integer, Farbe As Integer)
' Kurve durch die Punkte x(0), y(0) bis x(n), y(n) in der angegebenen Farbe,
' z.B. in das mit der Sub Koordinaten gezeichnete Koordinatensystem.
For i As Integer=1 To n
Line (x(i-1), y(i-1))-(x(i), y(i)), Farbe
Next i
End Sub