Apfelmännchen & Co.

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
Xaby
Beiträge: 2144
Registriert: 12.11.2005 11:29
Wohnort: Berlin + Zehdenick
Kontaktdaten:

Apfelmännchen & Co.

Beitrag von Xaby »

Hi Fans,

hab einen Artikel aus unserer Kreiszeitung von '92 gefunden.
War schon etwas gelblich das Blatt, aber die Schrift war noch gut zu erkennen. Das Ursprungsprogramm war für QBasic.

Ich habs etwas abgeändert. Vielleicht setzt ihr hier auch ein paar lustige Dinge rein, ähnlich wie bei dem SoundThread :freak:

Code: Alles auswählen

; Sternkurvenfamilie


;/ Grafikmodus

OpenWindow(0,0,0,320,200,#PB_Window_ScreenCentered,"Sternkurven 17. Juli 1992 MAZ, Folker Linstedt 2006")


Global pi.f
Global radius.f
Global ivanz 

pi = 3.14159: 
radius = 99 :
 ivanz = 16

Procedure.f fnx(p.f)
  e.f=Cos(p)
  Q.f=radius*e*e*e
  ProcedureReturn Q
EndProcedure

Procedure.f fny(p.f)

 e.f=Sin(p)
 
 Q.f=radius*e*e*e
 
 ProcedureReturn Q
EndProcedure

StartDrawing(WindowOutput())
Box(0,0,320,200,RGB(0,0,0))

For drehl=0 To 16 
  xa.f = fnx(0): ya.f=fny(0): dreh.f=drehl*pi/16: Debug dreh
  xz.f= Cos(dreh) * xa - Sin(dreh) * ya
  yz.f= Sin(dreh) * xa + Cos(dreh) * ya
  xa=xz: ya=yz
  For i=1 To ivanz
    t.f = i / ivanz * (2*pi)  
    
    xe.f=fnx(t): ye.f=fny(t)
    xz=Cos(dreh) * xe - Sin (dreh)*ye
    yz=Sin (dreh)* xe + Cos (dreh) *ye
    xe=xz: ye=yz
  LineXY(Round(xa+160,0),Round(ya+100,0),Round(xe+160,0),Round(ye+100,0),RGB(255,255,255))
  xa=xe: ya=ye
  Next i
  radius=radius*0.88
Next drehl

StopDrawing()
   
   Repeat
     EventID = WaitWindowEvent() 
   
   Until EventID = #PB_Event_CloseWindow


End;
Ich sag's gleich, ist nicht optimiert, wollte nur mal sehen, ob's funktioniert.
Gruß, Folker :allright:
Kinder an die Macht http://scratch.mit.edu/