Hallo,
wie wurden nochmal die Punkte in der HiRes-Grafik berechnet?
Hat jemand zufällig paar Code-Schnipsel rumfliegen?
Also ich bräuchte nur einzelne Punkte setzen und einfach Linien.
Du bist in Begriff, Forum64 zu verlassen, um auf die folgende Adresse weitergeleitet zu werden:
Bitte beachte, dass wir für den Inhalt der Zielseite nicht verantwortlich sind und unsere Datenschutzbestimmungen dort keine Anwendung finden.
letzter Beitrag von schnucke am
Hallo,
wie wurden nochmal die Punkte in der HiRes-Grafik berechnet?
Hat jemand zufällig paar Code-Schnipsel rumfliegen?
Also ich bräuchte nur einzelne Punkte setzen und einfach Linien.
Hallo,
wie wurden nochmal die Punkte in der HiRes-Grafik berechnet?
Hat jemand zufällig paar Code-Schnipsel rumfliegen?
Also ich bräuchte nur einzelne Punkte setzen und einfach Linien.
Also damit kann ich jetzt nicht so richtig was mit anfangen...
Hier ist ein altes Listing (anscheinend von mir?) für den Profiass. Ich hatte das, glaube ich, dafür vorgesehen, dass man alles per Sys aus Basic heraus aufrufen kann. Daher die Sprungtabelle am Anfang. Leider, wie damals bei mir immer, ist nichts kommentiert. Immerhin kann man an den Labels erkennen um welche Routine es sich jeweils handelt. Die "plot"-Routine heißt auch so. Ansonsten sind noch Textausgabe, Scrollen, Umschalten auf Hi-Res und Bildschirmlöschen enthalten. Vielleicht kannst Du ja was damit anfangen. Übrigens ist das das Programm mit dem mir schon mal eine 6510-CPU abgeraucht ist. Ich hoffe da gibt es keinen ursächlichen Zusammenhang (-;
@Edit: Der Code aus dem Link von Colt Seavers ist natürlich bedeutend einfacher und schneller.
So viel zu den Punkten, Linien sind wesentlich aufwändiger. Brauchste, wenn's schnell sein soll, einen Bresenham, Artikel z.B. auch in der Codebase oder in der C=Hacking 8.
Punkte setzen klappt jetzt. Was die Linien anbetrifft - Bresenham
scheint das zu leisten. Werd ich mir mal näher anschauen.
Vielen Dank erst mal an alle!!!
bresenham ist speziell für den c64 toll, weil er auch mit nur ganz wenigen registern gut zu implementieren ist.... es gibt noch nen andren algo der auf grösseren maschinen besser ist (nach "very fast line algorithmn" oder sowas googlen), aufm c64 dürfte der aber eher deutlich langsamer sein.
Hat jemand den Bresenham-Algorithmus schon mal
in Assembler implementiert? - dann hätt ich das mal gespart...
der Bresenham war so ziemlich das Erste, was ich auf dem 8bitter programmiert habe, s.hier: plot pixel + bresenham + line animation
Den Source hänge ich Dir an, brauchst noch ein Makro #plotpixel das tatsächlich den Punkt an der Pos. Ax,Ay bzw. $e0,$e1 setzt. Da kannst Du ja Deine plot-Funktion reinhängen.
Viel Erfolg!
Hat jemand den Bresenham-Algorithmus schon mal
in Assembler implementiert? - dann hätt ich das mal gespart...
Wenn du die einfachen Sachen schon nicht selber programmieren willst, wie soll das erst bei den schweren Sachen sein?
@Fröhn
cooler tip - bringt micht echt weiter...
wobei er recht hat...
Eben nicht.
Ich denke mir, das sind alles mehr oder weniger Standardsachen, die irgendwer
schon mal gemacht hat - warum soll man denn das Rad immer wieder neu erfinden ?
auf dem c64 ist so ziemlich ALLES "mehr oder weniger standard". warum überhaupt noch irgendwas coden?
Ich geb's auf...
Mal abgesehen davon hab ich doch gleich den Standardcode für Dots gegeben? Und je nach Tabellen funktioniert das Ding auf Charsets, Bitmap und Sprite-Layer. Und für Linien braucht man da nur einen winzigen Bresenham-Algo herumstricken.
OK, mal was anderes:
Ich möchte gerne 2 16-Bitzahlen voneinander subtrahieren und anschlißend
auf <0 abfragen:
Das Ergebnis steht ja nun in termlo/hi.
Wie kann ich das jetzt auf <0 abfragen?
Geht das irgendwie elegant mit dem V-Flag
oder muß ich vorher prüfen, ob sub>term?
Mit BMI (branch on minus) bzw BPL (branch on plus).
Ausserdem kann man das Carry-Flag nach der Subtraktion verwenden, um festzustellen, welche der beiden Zahlen grösser ist:
BCC (branch on carry clear) verzweigt, wenn zahl1 < zahl2.
BCS (branch on carry set) verzweigt, wenn zahl1 >= zahl2.