Buchempfehlung
MySQL kurz & gut
MySQL kurz & gut
Das preiswerte Taschen- buch stellt MySQL-rele- vante Inhalte systematisch und knapp dar, sodass es sich optimal zum Nach- schlagen beim Pro- grammieren eignet. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

Funktionen im Koordinatensystem darstellen(mit Sin & Cos Erweiterung) u.a.m.

Uploader:Redakteurytwinky
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