 |
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 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1280 Wohnort: Ruhrpott
|
Verfasst am: 19.07.2014, 10:37 Titel: |
|
|
Und das Fenster auf 1280 x 1024! Irre!
Wäre eine tolle Idee als Kunstwerk für eine Designerwohnung - auf 'nem 90er Plasmaschirm!
Gruß
grindstone
EDIT: Ich meine natürlich 90 Zoll!  _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Zuletzt bearbeitet von grindstone am 19.07.2014, 11:04, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1280 Wohnort: Ruhrpott
|
Verfasst am: 19.07.2014, 11:02 Titel: |
|
|
@creepi:
Zitat: | wenn jemand 100+ planeten hat wäre pset schneller |
Bitte sehr! Hier die etwas verfeinerte Kreiswolke mit 200 Kreisen: Code: | #Include "fbgfx.bi"
Type Kreis
x As Single
y As Single
r As Single
End Type
Const pi As Double = ACos(0)*2
Const pi2 As Double = 2 * pi
Declare Function Quad OverLoad (s As Double) As Double
Declare Function Quad(s As Single) As Single
Declare Sub Kreiszeichnen(k() As kreis, index As Integer)
Dim As Integer i
Dim Shared As Any Ptr hg
Dim As kreis k(1 To 200)
Dim As Integer p(UBound(k))
ScreenRes 1280,1024,32,,FB.GFX_ALPHA_PRIMITIVES
Randomize Timer
For i = 1 To UBound(k) 'zufällige kreise erstellen
k(i).x = Rnd * 1280 + 10
k(i).y = Rnd * 600 + 10
k(i).r = 0
Next
'hintergrundbild mit zufallsmuster füllen
hg = ImageCreate(1280,1024,RGB(Rnd*255,Rnd*255,Rnd*255)) 'pufferspeicher für hintergrundbild anlegen
For y As Integer = 0 To 1023
For x As Integer = 0 To 1279
PSet hg,(x,y),RGBA(Rnd*255,Rnd*255,Rnd*255,100)
Next
Next
Put (0,0),hg 'hintergrundbild auf bildschirm schreiben
Do 'kreise zeichnen
For i = 1 To UBound(k) 'alle kreise
Kreiszeichnen(k(),i)
Next
For i = 1 To UBound(k) 'radien vergrößern
k(i).r += .1
Next
Sleep 50
Loop While InKey = ""
ImageDestroy hg 'speicher freigeben
Function Quad(s As Double) As Double
Return s * s
End Function
Function Quad(s As Single) As Single
Return s * s
End Function
Sub Kreiszeichnen(k() As kreis,i As Integer)
Dim As Integer p(UBound(k))
Dim As Integer x,z,j,sichtbar
Dim As Double w,s,c,r,xp,yp,mx,my,rk
r = k(i).r + 2
mx = k(i).x
my = k(i).y
'feststellen, welche Kreise berührt werden
z = 0
For x = 1 To UBound(k)
If x <> i Then
If (Quad(mx - k(x).x) + Quad(k(i).y - k(x).y)) < (Quad(r + k(x).r)) Then 'kreise überschneiden sich
z += 1
p(z) = x 'index des kreises in liste schreiben
EndIf
EndIf
Next
For w = 0 To pi2 Step 1/r 'schrittweite so wählen, daß eine geschlossene linie entsteht
s = Sin(w)
c = Cos(w)
xp = mx + c * r 'kreispunktkoordinaten
yp = my + s * r
sichtbar = 1 'flag für "punkt setzen"
For j = 1 To z 'alle überschneidenden kreise
If Quad(xp - k(p(j)).x) + Quad(yp - k(p(j)).y) < Quad(k(p(j)).r) Then 'abstand vom mittelpunkt ist kleiner als der radius
sichtbar = 0 'punkt nicht setzen
Put(xp-1,yp-1),hg,(xp-1,yp-1)-(xp+1,yp+1),PSet 'eventuelle artefakte beseitigen
Exit For 'prüfung abbrechen
EndIf
Next
If sichtbar Then
PSet(mx + c * (r + 5),my + s * (r + 5)),RGBA(255,255,255,4) 'aussenkreise mit abnehmender
PSet(mx + c * (r + 1),my + s * (r + 1)),RGBA(255,255,255,30) ' transparenz zeichnen
PSet(mx + c * r,my + s * r),RGBA(255,255,255,255) 'kreis in vollfarbe
xp = mx + c * (r - 1)
yp = my + s * (r - 1)
Put(xp,yp),hg,(xp,yp)-(xp,yp),Alpha,10 ' hintergrundbild mit abnehmender transparenz wiederherstellen
EndIf
xp = mx + c * (r - 5)
yp = my + s * (r - 5)
Put(xp-1,yp-1),hg,(xp-1,yp-1)-(xp+1,yp+1),PSet 'hintergrundbild mit vollfarbe wiederherstellen
Next
End Sub
|
Durch die bei jedem Durchlauf abnehmende Transparenz im Randbereich ensteht der Eindruck einer fließenden Bewegung, auch wenn sich der Radius nicht ändert.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 19.07.2014, 15:26 Titel: |
|
|
Kannste knicken, ich bleib bei mein weg aaaaaaaaber... drauf habt ihr es ja mal alle male, irrer haufen ey.
Hast es aber echt gut beschrieben
Wenn man es sich anschaut, überall netten kommentar das man auch durchsteigen kann
mein script sieht dagegen irgend wie ein klein wenig anders aus *g* ; D
arbeite zb ohne funktion. weiß noch nicht so recht was mit anzufangen weil et läuft auch gut ohne... subs nutze ich aber... ; )
aber danke für das schöne beispiel, respekt. auch an die anderen mal so ganz neben bei... : )
Edit: Irgend wie juckt es mir nu scho ein bissel in den fingerchen, werd mal schauen, ob ich es noch hinbekomm später das projekt vorzustellen.
Müsste dafür aber noch was am server drehen falls der eine oder andere es mal mit wem im mp-testen mag. mal gucken... |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1280 Wohnort: Ruhrpott
|
Verfasst am: 20.07.2014, 02:51 Titel: |
|
|
creepi hat Folgendes geschrieben: | mein script sieht dagegen irgend wie ein klein wenig anders aus | Sind ja auch echt lästig, diese Kommentare, schließlich weiß man doch, was man da macht.
In einem Lehrbuch habe ich dazu mal den Satz gelesen: "Sie glauben gar nicht, was man in drei Wochen alles vergessen kann." Und der Autor hatte recht: Ich habe es wirklich nicht geglaubt. Bis ich zum erstenmal ein Programm, das ich ein knappes halbes Jahr vorher geschrieben hatte, überarbeiten wollte. Da habe ich dann an einigen Stellen gedacht: "Hä??"
Und auch das Zusammenfassen von klar abgegrenzten Aufgaben in Subs und Funktionen erhöht nicht nur die Übersichtlichkeit ganz enorm, sondern vereinfacht auch die spätere Wiederverwendung in anderen Programmen. Wobei man andererseits auch nicht übertreiben sollte, aber da muß jeder seinen eigenen Stil finden.
Ein anderer Satz, den man oft in Lehrbüchern findet, lautet: "Gewöhnen Sie sich gleich von Anfang einen sauberen Programmierstil an". Das halte ich nicht für empfehlenswert. Jeder sollte zuerst einmal richtig Chaos machen, um selber zu sehen, warum (und wann) es sich lohnt, "sauber" zu programmieren. Das ist auf die Dauer besser, als es irgend jemandem glauben zu müssen.
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 20.07.2014, 04:33 Titel: |
|
|
was machst du denn noch um kurz vor drei hier? XD
...glaub ich ich weiß wovon du redest. Hat ich auch mal. Nach gut ein Jahr nochmal Projekt vorgeholt weil ich schauen wollte wie ich es damals gelöst hatte.... au weier
Wenn man gerade dran rum Programmiert sieht alles so logisch aus.
Lässt man eine weile die finger von dem projekt, dauerts bis man wieder durchsteigt XD
Eines hab ich bei dem jetzigen Spiel anders gemacht, die dim blabla-namen so gewählt das man die auch besser zu ordnen kann. Einmal so lang das die max länge erreicht wurde, das war etwas uncool, kurz gestuzt und etwas abgekürzt  |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 20.07.2014, 08:21 Titel: |
|
|
Zitat: | Jeder sollte zuerst einmal richtig Chaos machen, um selber zu sehen, warum (und wann) es sich lohnt, "sauber" zu programmieren. |
Für mich ist das nichts. Ich brauche von Anfang an eine gewisse Struktur, um mich überhaupt in meinem Programm zurechtzufinden. Natürlich erarbeitet man sich diese Struktur nach und nach und man sieht, was besser funktioniert und was schlechter, aber mit richtigem Chaos wäre ich schon in den ersten Programmiertagen nicht zurechtgekommen.
Ich sehe das eher als eine Sache der Gewohnheit. Wenn ich von Anfang an gewohnt bin, sauber zu arbeiten, "weiß" ich ja gar nicht, wie es chaotisch geht und muss mir gar keine Gedanken darüber machen, ob und warum es sich lohnt, sauber zu programmieren - ich mache es einfach.
Aber da ist jeder ein eigener Lerntyp. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1280 Wohnort: Ruhrpott
|
Verfasst am: 20.07.2014, 10:07 Titel: |
|
|
creepi hat Folgendes geschrieben: | was machst du denn noch um kurz vor drei hier? | Und selber?
creepi hat Folgendes geschrieben: | ...glaub ich ich weiß wovon du redest. | Einsicht ist der erste Schritt zur Besserung.
creepi hat Folgendes geschrieben: | die dim blabla-namen so gewählt das man die auch besser zu ordnen kann. | Sprechende Namen sind für die Lesbarkeit eines Programms sehr nützlich. Beim Entwickeln und Testen kann man ja einzelne Buchstaben oder Abkürzungen verwenden, aber spätestens, wenn der Programmabschnitt fehlerfrei läuft, sollte man sie austauschen.
@nemored: Wie schon gesagt: Jeder muß seinen eigenen Stil finden. Ich persönlich bin ein überzeugter Anhänger des "learning by doing". Das ist zwar nicht die schnellste, aber mit Sicherheit die nachhaltigste Lernmethode, nicht nur beim Programmieren (was nicht heißt, daß man sich nicht von anderswo Rat und Unterstützung holen sollte). Erst, wenn man selbst ein(paar)mal ein Programm geschrieben hat, bei dem man am Ende nicht mehr durchblickt und selbst sieht, daß (und warum) das sch...lecht ist, wird man sich in Zukunft konsequent um Übersichtlichkeit bemühen, weil das nämlich immer mit zusätzlicher Arbeit verbunden ist (die sich lohnt, aber das muß man halt erst einmal einsehen).
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 20.07.2014, 18:37 Titel: |
|
|
grindstone hat Folgendes geschrieben: | @dreael: Kann es sein, daß du die Billard-Simulation für einen etwas langsameren Rechner geschrieben hast? :D Kann man das Gewusel irgendwie langsamer machen? Ich würde mir die Simulation gerne einmal ansehen. |
Ohne viel Kommentar:
http://www.youtube.com/watch?v=f_qdAX5XJYs
d.h. das Ganze einmal in DOSBox ausgeführt, wo es eine praktische Video-Capturefunktion gibt.
Bei der grünen Kugel seht Ihr recht deutlich, was ein Fliesskomma-Rendering ausmacht, insbesondere, wenn sie sich nur ganz langsam bewegt. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 21.07.2014, 01:30 Titel: |
|
|
grindstone hat Folgendes geschrieben: | creepi hat Folgendes geschrieben: | was machst du denn noch um kurz vor drei hier? | Und selber? |
Das ist doch etwas vollkommen anderes ;D
@dreael, das ist immer witzig, aussehen tut es.... da würde jeder sagen was dat denn.. so ein schrott.... WOBEI ich jetzt nicht sagen will das es so ist!! mein ja nur rein allgemein gesprochen.... worauf ich hinaus wollt, was da hintersteckt, wenn man da mal weiter denkt... das muss man erstmal auf die beine stellen. Spontan müsst ich mir ein kopf zerbrechen wie ich den ablauf hinbekommen würde mit der kollision...... in diesem sinne, cool gemacht.
Sollte aufhören euch ständig zu loben, das bekommt langsam ein bitteren beigeschmack auf der zunge  |
|
Nach oben |
|
 |
grindstone
Anmeldungsdatum: 03.10.2010 Beiträge: 1280 Wohnort: Ruhrpott
|
Verfasst am: 21.07.2014, 02:02 Titel: |
|
|
creepi hat Folgendes geschrieben: | Sollte aufhören euch ständig zu loben, | Warum denn? Mach ruhig weiter!
Gruß
grindstone _________________ For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen! |
|
Nach oben |
|
 |
creepi
Anmeldungsdatum: 13.06.2010 Beiträge: 59
|
Verfasst am: 21.07.2014, 02:47 Titel: |
|
|
 |
|
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.
|
|