| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen | 
	
	
		| Autor | Nachricht | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The_Muh aka Mark Aroni
 
  
 Anmeldungsdatum: 11.09.2006
 Beiträge: 718
 
 
 | 
			
				|  Verfasst am: 03.09.2008, 18:38    Titel: |   |  
				| 
 |  
				| hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen? und was RGB(0,255,0) und RGB(255,0,0) angeht, da kannste ne menge zeit sparen wenn du const color_green = rgb(0,255,0) usw  machst
 _________________
 // nicht mehr aktiv //
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Lutz Ifer Grillmeister
 
  
 Anmeldungsdatum: 23.09.2005
 Beiträge: 555
 
 
 | 
			
				|  Verfasst am: 03.09.2008, 18:54    Titel: |   |  
				| 
 |  
				| Deine "Ameisen" haben eine seltsame Vorliebe für 45°-Winkel. Das riecht nach Integerdivision, wo eigentlich eine Fliesskommadivision hingehört hätte. 
 
 Nur so nebenbei: Das Programm liesse sich noch (ein Bisschen) optimieren, wenn aus den Funktionen red(), blue(), gree() "inline" Funktionen würden.
 
 Lutz
  Ifer _________________
 Wahnsinn ist nur die Antwort einer gesunden Psyche auf eine kranke Gesellschaft.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The_Muh aka Mark Aroni
 
  
 Anmeldungsdatum: 11.09.2006
 Beiträge: 718
 
 
 | 
			
				|  Verfasst am: 03.09.2008, 19:15    Titel: |   |  
				| 
 |  
				| und i-was mit der mausprüfung is faul... der macht sehr viel schneller wenn die maus nicht im fenster is... 
 @Lutz:
 statt :
 
  	  | Code: |  	  | tx = int((rnd *3) -1)   '... Schauen wir mal wo man so hintreten kann
 ty = int((rnd *3) -1)   'Einfach mal auf gut Glück
 
 | 
 nimm:
 
  	  | Code: |  	  | tx = (rnd *2) -1   '... Schauen wir mal wo man so hintreten kann
 ty = (rnd *2) -1   'Einfach mal auf gut Glück
 
 | 
 _________________
 // nicht mehr aktiv //
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 03.09.2008, 19:40    Titel: |   |  
				| 
 |  
				| @The_Muh: Ja das hab ich auch später gesehen. So siehts schon viel besser aus  ... Vielen Dank für die Tipps! Werd das ganze aber noch etwas ausarbeiten  wenn noch anregungen da sind, immer her damit  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| The_Muh aka Mark Aroni
 
  
 Anmeldungsdatum: 11.09.2006
 Beiträge: 718
 
 
 | 
			
				|  Verfasst am: 03.09.2008, 19:42    Titel: |   |  
				| 
 |  
				| Das in die Hauptschleife: 
  	  | Code: |  	  | if in = "p" then
 if pause = 0 then
 pause = 1
 else
 pause = 0
 end if
 end if
 
 if pause = 0 then apx->work : apx=apx->nx_px
 
 | 
 
 und das als endbedinung für die hauptschleife:
 
  	  | Code: |  	  | loop until in = "q" or in = chr(27) or in = chr(255,107) | 
 _________________
 // nicht mehr aktiv //
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 11:50    Titel: |   |  
				| 
 |  
				| was ist chr(255,107) ? |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| Jojo alter Rang
 
  
 Anmeldungsdatum: 12.02.2005
 Beiträge: 9736
 Wohnort: Neben der Festplatte
 
 | 
			
				|  Verfasst am: 05.09.2008, 12:18    Titel: |   |  
				| 
 |  
				| Alt+F4 alias "fenster schließen" _________________
 » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 12:26    Titel: |   |  
				| 
 |  
				| @The_Muh: 
 Was meinst du mit:
 "hast du die UDTs extra als PTR gedimmt? warum nicht einfach ganz normal den UDT benutzen? "
 
 Wenn ich zur laufzeit neuen Speicherplatz für beliebig viele "Wanderpixel" belegen will, dann geht wohl kaum ein Weg um Pointer drum herum. Besonders wenn ich diese dann noch verketten will.
 
 Hier eine neue Version mit euren Einflüssen und Ideen:
 
 http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=710
 
 Zum beginnen einfach "p" drücken!
 
 Tasten:
 c = löscht den Bildschirm und baut die Wanderpixel neu auf
 p = pause
 
 l = löscht den 1. Wegpunkt in der Kette (da muss ich aber noch was einbauen, da könnte was abstürzen wenn man alle wegpunkte entfernt)
 
 + = Es werden 10 Wanderpixel hinzugefügt
 - = Es wird 1 Wanderpixel entfernt
 
 Bin gespannt wie es weitergehen kann
  |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 12:27    Titel: |   |  
				| 
 |  
				| PS: Mit REDIM arbeite ich nicht gerne. |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 12:47    Titel: |   |  
				| 
 |  
				| Folgendes ist mir aufgefallen: 
 Sobald sich wege kreuzen oder die Pixel sich an einem Wegpunkt "stauen" dann pflanzt sich der Stau rückwärts fort.. genau wie im im richtigen Leben
  *lol* |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 13:17    Titel: |   |  
				| 
 |  
				| Kann man das eigentlich auch in OpenGL programmieren? also mit 3 dimensionen? |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 05.09.2008, 13:32    Titel: |   |  
				| 
 |  
				|  	  | OneCypher hat Folgendes geschrieben: |  	  | PS: Mit REDIM arbeite ich nicht gerne. | 
 Mit dem edit-Button auch nicht, hm?
   
 Das Programm läuft bei mir so quälend langsam, dass ich mal eine Messung und Ausgabe eingebaut habe, wie lange es für einen Schleifendurchlauf braucht. Und prompt läuft es sehr flott
   
 Woran liegt das? Ich habe das Gefühl, dass ohne meinen PRINT-Befehl gar nichts läuft und auch das Beenden ewig dauert. *wunder*
 _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 13:40    Titel: |   |  
				| 
 |  
				| Rüüühhsscchtüüüsch  .. "edit" benutzen doch nur leute die was zu verbergen haben *ggg* 
 @nemored: Ich arbeite hier mit WinXP Pro auf einem 1,86GHz Core2Duo 1GB Ram. Und da läufts auch mit 10000 wanderpixel noch recht flott. Allerdings muss ich zugeben das es auf einem anderen Rechner der Offiziell flotter sein soll, nicht so flott ist.
 Dieser andere Rechner läuft mit Ubuntu 8.04 und hat die propritären Nvidia-Treiber installiert. Hat ne 2,4GHz Core2Quad CPU und 3GB Ram.
 
 Warum das auf dem 2. Rechner langsamer läuft versteh ich in der Tat nicht!
 Obs an den X-Treiber von NVidia liegt? Im Heise Ticker und in der CT hab ich schon öfters wegen Performance-verlusten unter Linux mit den Nvidia-treibern gelesen...
 
 
 
 Angeblich sollte man ja ein "sleep 1" in die Hauptschleife einfügen damit das Betriebssystem auch kurz die Kontrolle über die Events bekommt.
 Aber sobald ich das in die Hauptschleife einfüge läufts wirklich grotten langsam... Da lass ich das lieber ohne "sleep 1" laufen...
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 05.09.2008, 13:56    Titel: |   |  
				| 
 |  
				| Natürlich hat mein Laptop nicht den Hyperprozessor - mag mir ja z. B. im Zug nicht die Knie verbrennen - aber mehr als 10 Sekunden Reaktionszeit zum Programm beenden ist mir zu langsam.   
 Tatsächlich ist die Geschwindigkeit aber ganz passabel, wenn ich nur irgendwo eine Ausgabe einfüge. LOCATE 1,1 : PRINT "a" reicht da schon. Ansonsten rechnet er eine ganze Weile vor sich her und gibt irgendwann einmal ein Zwischenergebnis aus. Merkt das Programm ohne mein PRINT nicht, dass es schon etwas ausgeben soll? Bin etwas ratlos. Vor allem, weil es ja auch die Reaktion auf die Programmende-Taste verzögert.
 _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 14:02    Titel: |   |  
				| 
 |  
				| @nemored: Was für ein OS benutzt du? Ich hab merkwürdigkeiten unter Linux mit der funktion getmouse beobachtet. Warum es bei dir schneller wird sobald du eine textausgabe generierst versteh ich auch nicht. Bzw kann ich bei mir nicht nachvollziehen.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 05.09.2008, 14:39    Titel: |   |  
				| 
 |  
				|  	  | OneCypher hat Folgendes geschrieben: |  	  | @nemored: Was für ein OS benutzt du? | 
 Linux Ubuntu 8.04
 
 (da soll noch einer sagen, PRINT würde die Programmgeschwindigkeit bremsen
  ) 
 Mit GETMOUSE habe ich normalerweise keine Probleme.
 
 edit: mit SLEEP 1 und ohne PRINT läuft das Programm zwar wesentlich langsamer, aber es läuft. Ich kann mir nur vorstellen, dass das Programm so sehr mit der Berechnung beschäftigt ist, dass es gar nicht mehr zum zeichnen kommt.
  _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 14:55    Titel: |   |  
				| 
 |  
				| wie wärs mit screensync ? 
 also in die hauptschleife reinbauen:
 
 if apx = spx then screensync
 
 
 
 
 Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen.
 
 Und WinXp hast du bei dir nicht installiert? .. ich schätze das liegt wirklich am OS. Oder an irgendwelchen Treibern.
 
 edit: das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz)... Bin mal gespannt wie sich das bei dir auswirkt
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| nemored 
 
  
 Anmeldungsdatum: 22.02.2007
 Beiträge: 4711
 Wohnort: ~/
 
 | 
			
				|  Verfasst am: 05.09.2008, 15:47    Titel: |   |  
				| 
 |  
				|  	  | OneCypher hat Folgendes geschrieben: |  	  | Du lässt Ubuntu 8.04 auf einem laptop laufen hmm... okay, dann wird das wohl kein älterer laptop sein.. sonst bräuchte der 10 minuten zum hochfahren nach meinen erfahrungen. | 
 dreieinhalb Jahre
 
 
  	  | OneCypher hat Folgendes geschrieben: |  	  | Und WinXp hast du bei dir nicht installiert? | 
 Wozu?
 
 
  	  | Zitat: |  	  | das einsetzen von "if apx = spx then screensync" bewirkt eine wirklich krasse verlangsamung auf dem Core2Duo (1,86GHz) | 
 bei mir ebenso, aber damit klappt es wesentlich besser:
 
  	  | Code: |  	  | if timer-t > .1 then screensync
 t = timer
 end if
 
 | 
 Eine Aktualisierung jede 10tel Sekunde reicht mir erst einmal.
   
 
 edit:
 
 stimmt ja gar nicht, es sind ja schon viereinhalb.
 _________________
 Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		| OneCypher 
 
 
 Anmeldungsdatum: 23.09.2007
 Beiträge: 802
 
 
 | 
			
				|  Verfasst am: 05.09.2008, 15:57    Titel: |   |  
				| 
 |  
				| @nemored: Hast du zufällig den original NVidia-Treiber installiert? 
 Unter WinXP laufen leider immer noch viele beliebte Programme. Auch die Treiberunterstützung seitens Hardware-herstellern ist immer noch besser. Wird wohl auf absehbare Zeit auch nicht anders sein.
 
 Ich schätze schon das es unter Linux genau deswegen oft zu Performance-Engpässen kommen kann.
 Einfach deswegen weil dort oft nicht durchgängig Treiber werkeln die nicht vom Hersteller gepflegt werden. Sei es als OpenSource-Projekt wie viele Treiber von Intel, oder als propritäre Geschichte wie schon erwähnt Nvidia...
 |  | 
	
		| Nach oben |  | 
	
		|  | 
	
		|  |