APPLICATIONSCREATION GRAPHIQUE ★ RSX CIRCLE (HAPPY COMPUTER) ★

RSX Circle (Happy Computer)Applications Creation Graphique
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Kreise mit einem Basic-Befehl

Die Grafik der Schneider Computer erlaubt in Verbindung mit den RSX-Befehls erweiterungen den Aufbau spezieller Grafikbefehle, wie bei kaum einem anderen Heimcomputer. Ein Kreis gehört natürlich dazu.

Unsere Befehlserweiterung soll die Form »CIRCLE, x-Koord., y-Koord., Radius « haben. Damit die Routine hinreichend schnell wird, dürfen wir die Darstellung des Kreises in Polarkoordinaten ((x,y}= r (cos(φ),sin(φ))) nicht benutzen. Die Polynomapproximationen für cos und sin des Interpreters sind zu zeitaufwendig. Aber auch mit der Formel y = √r2-x2 geht es nicht schneller. Der CPC hat leider nur eine sehr langsame Wurzelfunktion über den Umweg:

√x = x½ = exp ( ½ In(x)).

Außerdem müßte noch — da die Koordinaten eines Bildpunktes ganzzahlig sind — eine zeitraubende Umwandlung von Fließkomma- in Integerformat vorgenommen werden. Eine eigene Routine muß also her. Wir nehmen dazu die Newton-Approximation für √x:

Xn+1= 1 /2 (xn+ x/xn) ,

mitn = 0, 1, 2,... und Xo = x.

Gerechnet wird nur mit ganzzahligen Werten und maximal zehn Iterationsschritten. Die entsprechende Routine ist etwa um den Faktor zehn schneller als die Routine für Gleitkommazahlen des Basic-interpreters.

Noch drei Faktoren sind zu berücksichtigen, wenn man eine schnelle Routine erhalten will. Die Größe eines Grafikpunktes hängt vom jeweils gewählten Modus ab. So ist es natürlich falsch, im Mode 1 (1 Pixel = 2 x-Koordinaten) den Kreis wie im Mode 2 (1 Pixel = 1 x-Koordinate) zu zeichnen. Aufgrund der Symmetrie des Kreises brauchen wir des weiteren nur die Koordinate (x,y) eines Punktes zu berechnen und erhalten durch Vorzeichen Wechsel die entsprechenden Symmetriepunkte (—x,y), (x—y) und (—x,—y). Letztlich muß man noch entscheiden, ob der Kreis durch PLOT oder DRAW entstehen soll. Mit PLOT gibt es bei großen Kreisen Schwierigkeiten, da hier die y-Abschnitte bei zwei benachbarten x-Koordinaten mehr als ein Pixel auseinanderliegen. Es wären also zusätzliche Punkte zu plotten, um einen geschlossenen Kreis zu bekommen — natürlich auf Kosten der Geschwindigkeit. Bleibt also nur noch DRAW.

Der erste Programmteil bindet die Befehlserweiterung »Circle« ein. Zu Beginn der Routine prüft das Programm die Anzahl der übergebenen Parameter. Anhand des Bildschirm-Modus wird ein Zähler für die Berechnung der x-Abschnitte bestimmt und in COUNT abgelegt. Nach Sichern der aktuellen Koordinaten setzt das Programm den Ursprung auf den übergebenen Kreismittelpunkt. Der Kreis wird beginnend bei der Koordinate (O,R) gezeichnet.

Der Rest des Programms ist lediglich die leider immer mühsame Umsetzung der Formel y = √r2-x2. Eine große Hilfe sind hierbei natürlich die vom Betriebssystem zur Verfügung gestellten Routinen für die Integer-Arithmetik.

Horst Udo Hanenberg, HC

★ PUBLISHER: Happy Computer
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ COLLECTION: HAPPY COMPUTER-SCHNEIDER SONDERHEFT
★ AUTHOR: Horst Udo Hanenberg
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Circle    (Happy  Computer-Sonderheft)    GERMANDATE: 2021-03-19
DL: 177
TYPE: ZIP
SiZE: 4Ko
NOTE: 40 Cyls
.HFE: Χ

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Applications » RSX Clearstack (Schneider Aktiv)
» Applications » Clear-list (Schneider Aktiv)
» Applications » Clear Screen (CPC Amstrad International)
» Applications » ClearScreen-Key (Happy Computer)
» Applications » Spectacular Clear (Popular Computing Weekly)
Je participe au site:
» Vous avez des infos personnel ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 093 millisecondes et consultée 714 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.