Es wäre cool, wenn man den ganzen Block irgendwie in einem auf 0 setzen kann. Vielleicht ist sowas in asm möglich. Die nächste Idee wär da natürlich SIMD.
Es ist unter Windows in C++
Beiträge von Swoncen
-
-
Ja ich weiß eh =)
-
Hallo!
Ich hab eine Stelle in meinem Algorithmus den ich extrem beschleunigen kann indem ich einen großen Bereich im Speicher auf 0 setz. Ich möchte 640*480 Byte auf 0 setzen und ZeroMemory ist viel zu langsam. Kennt wer eine schnellere Möglichkeit? -
xolo.. ich glaub nicht, dass die drei Informatikerinnen sind. Informatikerinnen schaun eher so aus
Aber im innern sind wir doch alle gleich =) -
Sollte eigentlich in jedem guten C#-Buch drinnen stehn. Schau dir die GDI+ an. Wenn du etwas mehr mit Bildbearbeitung vorhast, solltest du dir deine eigenen Algorithmen schreiben, weil die GDI+ etwas langsam ist, was in der Bildverarbeitung fatal sein kann. Was genau hast du denn vor? Ich selbst bin auch ein Bildverarbeitungsfreak und hab eine relativ große Image-Klasse geschrieben.
Achja.. ich programmier aber in C++ (nicht managed) weil der garbage collector ziemlich stören kann. Soviel ich weiß muss man in C# mit dem gc leben, weils immer managed ist, aber ich hab da nicht soviel Ahnung in C#.
mfg -
Was für ein Fehler ist es denn?
-
Wen es noch interessiert: Ich habs jetzt implementiert und es läuft im Schnitt auf große Flächen 10 mal so schnell wie der Floodfill-Algorithmus. Das interessante ist, dass der Algorithmus schneller ist, wenn ich alle 8 Umgebungspixel betrachte und abbreche, wenn eines davon nicht grün ist als wenn ich nur 4 Umgebungspixel betrachte.
-
Ein typischer Informatiker ist jemand, der zu einer Vorlesung geht und die ganze Zeit etwas an seinem Laptop werkelt... =)
-
Zitat
das ding brauch speed!
Auf das kann ich gut verzichten bei einem Laptop, wenn er dafür nicht so heiß wird. Ich hab einen Pentium 4 2,66 GHz Laptop mit Radeon 9600 GraKa vor ca 2 Jahren gekauft und er wird oft so heiß, dass er sich von selbst abdreht.
Bei einem Laptop würd ich auf folgende Dinge besonders achten:
Mobiler Prozessor
Lüfterlautstärke
Gewicht
Größe
Monitor (nicht größe, sondern Lichtstärke)
Schwache GraKa, damits nicht zu heiß wird.
Vor allem kein Shared Memory
Das wären meine jetzigen Kriterien. Wenns geht, würd ich sogar einen Laptop ohne Software kaufen.. Software hab ich genug.. -
Wenn man das so betrachtet könnte es wirklich gut sein für MacOS. Dadurch, dass man die Möglichkeit hat auch Windows zu benutzen "trauen" sich sicher mehr Leute einen Apple zu kaufen. Dadurch kann man ohne Verluste MacOS "probieren" und vielleicht werden einige Windows User bekehrt. Mir selbst ist Windows am liebsten, aber ich hab mir schon überlegt einen Apple zu kaufen.
-
http://www.gmx.net/de/themen/comp…83401NaZJF.html
Ich glaub auch, dass es MacOS nicht mehr lange geben wird. Ich hab zwar keinen Mac und hatte noch nie einen, aber ich hoff nicht, dass es einmal so weit kommen wird. -
-
Auf der CD müsste eine Datei sein, die oldsetup.exe heißt. Normal wird die nicht gestartet, aber vielleicht gehts damit.
-
.... das ist der Grund warum ich nichts bei ebay kauf...
-
Die TU-Version vom Windows XP fragt nie nach einem Update oder nach einem Ort, wo man es hinspeichern möchte. Zumindest ist es mir noch nicht gelungen (Hab ehrlich gesagt auch nicht vor mich damit zu beschäftigen :-)). Es speichert immer dorthin wo's grad geht.
-
Ich weiß nicht wie oft ich schon float/real/double Werte miteinander verglichen habe. Allerhöchstens mit Toleranz. Vielleicht ist das für dich auch akzeptabel?
-
Hallo!
Danke für deine Anregungen! Folgendes:
Sagen wir es ist z.B.: eine 640*480 Matrix und es sind sehr viele solcher zusammenhängender Graphen in dieser Matrix. Ich brauch von allen die maxima. Somit kann ich nicht von links, recht, unten und oben kommen. Es liegt am Speicher, der Zeilenweiße linear im Speicher liegt. So wie ich nach dem ersten grünen Feld suche, ist sicher die schnellste.
Leider ist nicht bekannt, wie der Graph aussieht, sonst wär es leicht. Die einzige Möglichkeit das Problem zu lösen ist diese, sich IM Graph zu bewegen und so die Maxima finden. Die erste Idee war eben der Floodfill, aber wir kennen den Performanceverlust.. Das extreme ist, dass ein solcher Graph auch 20.000 Felder beinhalten kann, deswegen war die nächste Idee, dass ich mich nur am Rand bewege. Das war schon meine Idee, wie ich diesen Thread gestartet hab, aber ich wollte sehen welche Ideen da noch so kommen. Die Frage war nur, wie ich automatisch am Rand bleib. Meine Idee war folgende:
1.) Schau aufs Feld rechts neben dem aktuellen. Falls es im Graphen ist, dann schau wieviele Nachbarn dieses Feld hat. (Alle 8 Nachbarn). Falls dieses Feld weniger als 8 grüne Nachbarn hat, dann marschier dorthin. Das ganze solange ich nach rechts so gehen kann. Wenns nicht mehr geht, dann das gleiche mit nach unten gehen, nach links gehen und nach oben gehen.
2.) Das ganze funktioniert rekursiv ähnlich wie Floodfill, nur mit der Außnahme, dass ich Felder nicht betrete, die 8 grüne Nachbarn haben.
Somit bleib ich immer am Rand und spar mir die massigen Felder in der Mitte. Wenn ich durch die rekursiven Aufrufe wieder zum Anfang komme, ist es fertig. Jetzt hab ich mir gedacht, dass die 8 Nachbarn für jedes Feld eine große Anzahl von Vergleichen ist, deswegen wähl ich die 4er-Umgebung (oben, rechts, unten, links).
Die Grafik zeigt die Nachbarn pro Feld für die verschiedenen Umgebungen. Das einzige was hier anders ist, ist dass es mehr 4er gibt als 8er in der 8er Umgebung (Im Graph, nicht in obiger Darstellung!). Es kommt aber aufs selbe, wenn ich trotzdem 4er betrete, aber keine 4er betrete, wenn ich schon auf einem 4er bin. Somit hab ich mir schon wieder einiges gesparrt. Die nächste Ersparniss ist, dass ich nicht alle Nachbarn anschauen muss.
1.) Von dem Feld wo ich komm, weiß ich dass es ein grüner Nachbar ist.
2.) Sobald ich einen Nachbar finde, der nicht grün ist, kann ich das Feld betreten.
Ja das waren meine Überlegungen. Vielleicht fällt jemandem noch was besseres ein. Ich würd mich freuen..
mfg -
Vom Akku kann ich sagen, dass er wirklich sehr lange hällt. Ein Freund von mir hat mir davon erzählt. Allerdings 5 Stunden hällt er nicht.
-
Ja hab ich mir auch schon gedacht, jedoch ist es bei ca 10.000 - 50.000 Punkten in einem Graphen trotzdem sehr Zeitaufwändig. Ich hab schon eine Idee, wie ich das besser und schneller machen kann, trotzdem warte ich auf Vorschläge ab, falls es was besseres gibt. Danke trotzdem! =)
-
Tatsächlich..
http://www.activevb.de/tutorials/tut_…/safearray.html
Ganz unten stehts.. jetzt is mir alles klar =)