 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Grafixfan

Anmeldungsdatum: 24.03.2007 Beiträge: 17 Wohnort: Bayreuth
|
Verfasst am: 04.04.2007, 16:55 Titel: Gerechnete Grafik 1 (Lissajous) |
|
|
Auf Wunsch von Mao erste Beispiele zu gerechneten Grafiken:
Lissajousfiguren entstehen, wenn man bei einem Oszillografen in x- und y-Richtung Wechselspannungen einspeist.
Stehen die Frequenzen beider Wechselspannungen in einem ganzzahligen Verhältnis, ergeben sich stehende Bilder; bei einem anderen Verhältnis verändern sich die Bilder um so schneller, je weiter sich das Verhältnis von ganzen Zahlen entfernt.
Mit dem PC kann man solche Figuren wesentlich einfacher und flexibler schreiben.
Die folgenden 4 kleinen Programme zeigen, mit wie wenig einfachen Formeln man Grafik erzeugen kann und mit welchen z.T. kleinen Veränderungen sehr unterschiedliche Ergebnisse entstehen.
Die Programme sind wohl nicht auf optimalen Code, sondern auf möglichst interessante Grafik geschrieben - Vorschläge für besseren Code und neue Grafiken werden gerne angenommen!
In zwei späteren Beiträgen möchte ich Grafiken aus Iterationen und Grafiken/Fraktale aus Juliamengen vorstellen und hoffe, die Leser nicht allzusehr zu langweilen!?
Code: | screen 20,8
dim as double d,i,x,y
''Mit der d-Schleife werden mehrere Lissajou-Figuren übereinandergeschrieben
''und in y-Richtung in der Größe verändert (geteilt durch d*2+1 in Zeile 19:
''Für nur eine Figur d von 2.8 to 2.9 eingeben.
FOR d = 0.2 TO 2.9 STEP .005
''Reine Lissajou-Figur über 360°/2Pi/6.3 mit sin in x- und cos in y-Richtung.
''Ersetzt man unten die "700" durch z.B. 150, sieht man die ganze Grafik.
FOR i = 0 TO 6.3 STEP .0005
x = SIN(i) * 400
y = COS(i * 6 + d) * 700 / (d * 2 + .1)
PSET (512 + x,350 + y),3 * d + 1
NEXT i
NEXT d
sleep
END 0 |
Code: | screen 20,8
dim as double d,i,x,y
''Mit der d-Schleife werden mehrere Lissajou-Figuren übereinandergeschrieben
''und in y-Richtung in der Größe verändert (geteilt durch d*2+1 in Zeile 21):
FOR d = 4 TO 21 STEP .01
''Reine Lissajou-Figur über 360°/2Pi/6.3 mit sin in x- und cos in y-Richtung:
FOR i = 0 TO 6.3 STEP .001
x = SIN(i) * 460
''Im Vergleich zu lissa1 Phasenverschiebung durch sin(i+...) in Zeile 21:
y = COS(i * 30 + d) * 1000 / (d * 2 + .1) + SIN(i + 1.6) * 200
PSET (500 + x,350 + y),3 * d + 1
NEXT i
NEXT d
sleep
END 0 |
Code: | screen 20,8
dim as double i
dim as single f,p
f = 3200:p = 10
FOR i = 0 TO .3 STEP .0000002
PSET (((COS(i + p) * COS(f * i) * COS(i / 5)) * 450 + 500 ),(SIN(5 * i) * SIN(f * i)) * 300 + 360),15
NEXT i
sleep
END 0 |
Code: | screen 20,8
dim as double i
dim as single f,p
f = 10000:p = 1
FOR i = 0 TO 4 STEP .000005
PSET (COS(i + p) * COS(f * i) * 450 + 512,SIN(i) * SIN(f * i) * 330 + 384),i*5+1
NEXT i
sleep
END 0 |
Zuletzt bearbeitet von Grafixfan am 20.05.2007, 13:54, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
Mao
Anmeldungsdatum: 25.09.2005 Beiträge: 4409 Wohnort: /dev/hda1
|
Verfasst am: 04.04.2007, 18:58 Titel: |
|
|
Schön anzuschauen, am Besten gefällt mir allerdings Nummer 2.
Weiteres erwünscht.  _________________ Eine handvoll Glück reicht nie für zwei.
--
 |
|
Nach oben |
|
 |
steff

Anmeldungsdatum: 24.03.2007 Beiträge: 11
|
Verfasst am: 05.04.2007, 22:14 Titel: |
|
|
Interessante Sache. Thx!
stef |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4702 Wohnort: ~/
|
Verfasst am: 05.04.2007, 22:23 Titel: |
|
|
Mao hat Folgendes geschrieben: | Schön anzuschauen, am Besten gefällt mir allerdings Nummer 2.  |
Kann ich nur zustimmen  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 05.04.2007, 22:44 Titel: |
|
|
Aus einen von denen hab ich ein Fusionsreaktor gemacht
Code: | screen 20,32
dim as double d,i,x,y
''Mit der d-Schleife werden mehrere Lissajou-Figuren übereinandergeschrieben
''und in y-Richtung in der Größe verändert (geteilt durch d*2+1 in Zeile 21):
FOR d = 4 TO 2100 step 1
''Reine Lissajou-Figur über 360°/2Pi/6.3 mit sin in x- und cos in y-Richtung:
FOR i = 0 TO 6.3 STEP .001
x = SIN(i) * 460
''Im Vergleich zu lissa1 Phasenverschiebung durch sin(i+...) in Zeile 21:
y = COS(i * 30 + d) * 355 / (d * 2 + .1) + SIN(i + 1.6) * 200
COL=COL+D
PSET (500 + x,350 + y),COL
NEXT i
NEXT d
sleep
END 0 |
|
|
Nach oben |
|
 |
AndT
Anmeldungsdatum: 02.04.2007 Beiträge: 481
|
Verfasst am: 05.04.2007, 23:03 Titel: |
|
|
Bildstörung:
Code: |
SCREEN 17,8
COL = 16
VALX=1
DO
COL=COL + INT(RND*2)+1
A=A+1
IF A=640 THEN A=0:B=B+1
IF B= 480 THEN B=0:A=0
PSET (A,B),COL
M=M+1
IF M = 100000 THEN SLEEP 5 : M=0
LOOP
sleep
|
Und hier ein wunderschöner Störungseffekt:
Code: |
SCREEN 20,32
COL = 16
VALX=6
DO
COL=COL + VALX
A=A+1+INT(RND*2)
IF A>1024 THEN A=1024
IF A=1024 THEN A=0:B=B+1
IF B= 800 THEN B=0:A=0:VALX=VALX+1
PSET (A,B),COL
' Kleine Routine zu entlastung der CPU auf kosten der geschwindikeit ;)
' M=M+1
' IF M = 10000 THEN SLEEP 10 : M=0
LOOP
sleep
|
|
|
Nach oben |
|
 |
Grafixfan

Anmeldungsdatum: 24.03.2007 Beiträge: 17 Wohnort: Bayreuth
|
Verfasst am: 17.05.2007, 10:35 Titel: Und weiter geht's |
|
|
Hallo, schön, daß Ihr wieder da seid!
Der Fusionsreaktor und die Störungen gefallen mir gut;
allerdings sollte man vielleicht besser die Programme nicht mischen, damit es keine Reaktorstörung gibt?
Da die Progrämmchen scheint's doch Interesse finden, möchte ich weitere Projekte vorstellen.
Viele Grüße und Spaß[img] |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|