★ CODING ★ SOURCES ★ Ellipsenbögen in Assembler|CPC Amstrad International) ★ |
Ellipse (CPC Amstrad International) | Coding Sources |
Wie man Kreise in Assembler realisiert, ist in dieser Zeitschrift schon veröffentlicht worden. Aber nun werden wir ein Verfahren vorstellen, mit dem man beliebige Ausschnitte (Bögen) aus Kreisen und Ellipsen auf dem Bildschirm darstellen kann. Um so etwas zu realisieren, kommt man mit puren Rechenrou-tinen kaum mehr aus, denn das würde die Routine weder schnell noch kurz machen. In diesem Fall könnte man gleich in BASIC programmieren, zumal das Loco BASIC beileibe nicht gerade das langsamste ist. Aber mit einer skalierten Winkeltabelle von 0 — 90° ist einem da schon eher geholfen. Für das, was das Programm kann, ist es nicht gerade sehr lang geraten (etwas über 300 Bytes) und auch zu vergleichbaren MC-Circle-Routinen noch verflucht schnell... Zur Benutzung: Die Systemwerte werden in sechs Speicheradressen abgelegt: Das Zentrum (Mittelpunkt) der Ellipse oder des Ellipsenbogens wird durch midx (x-Wert des Zentrums) und midy (y-Wert des Zentrums) in herkömmlichen Koordinaten (je nach Modus und Auflösung) festgelegt. Die Radien in x-Richtung (bei radx) und in y-Richtung (bei rady) werden genauso festgelegt. Bei den Winkeln ist die Sache etwas schwieriger: angl gibt den Anfangswinkel an und ang2 den entsprechenden Endwinkel. Aber: 1. Der Anfangswinkel darf nicht größer als der Endwinkel sein, (beide im Bereich von 0 bis 359) 2. Der Endwinkel darf nicht größer als 359 (Einheiten in Winkelgraden!) sein. 3. Zuwiderhandlungen der Punkte 1—3 führen unwiderruflich zu einem Systemabsturz, Crash oder wie auch immer Sie es nennen mögen. 5. Abfragen, die das verhindern, können selbstverständlich (auf Kosten des Platzes) installiert werden ...
|