New graphics instructions :
---------------------------
R Move dx,dy : moves relative to the graphics cursor
does the same thing as: Gr Locate Xgr+dx,Ygr+dy
but is shorter and faster...
R Draw dx,dy : draw a line relative to the graphics cursor
does the same thing as: Draw Xgr,Ygr to Xgr+dx,Ygr+dy
but is shorter and faster...
R Box dx,dy : draw a box relative to the graphics cursor.
does the same thing as: Box Xgr,Ygr to Xgr+dx,Ygr+dy
but is shorter and faster...
R Bar dx,dy : draws a filled bar relative to the graphics cursor.
does the same thing as: Bar Xgr,Ygr to Xgr+dx,Ygr+dy.
but is shorter and faster...
F Draw X,Y :
Does the same thing as Draw To X,Y. But it is up to 200% faster
than the original Draw routine ! (1-2 bitplane screen)
The Set Line MASK command has no effect when using F Draw, this
will be corrected in the next version ! Hmm...
F Draw X,Y To X1,Y1 :
Does the same thing as Draw X,Y To X1,Y1. But it is up to 200%
faster than the original Draw routine ! (2 bitplane screen)
The Set Line MASK command has no effect when using F Draw, this
will be corrected in the next version ! Hmm...
Line 3d X,Y,Z To X1,Y1,Z1 :
Will draw a line from (X,Y,Z) to (X1,Y1,Z1) in three-
dimensional space. To do this I assume a fixed eye position.
Further I take the eye position as the origin.
To form a perspective view, we need to define a "vanishing point",
a theoritical point at which all diminishing parallel lines meet.
If you were standing on the white lines in the middle of a
straight road and you looked along th road towards the horizon,
the vanishing point would be where the white line and the two
road edges meet. By taking this eye position, our perspective
calculations can be simplified to : X=X*D/Z and Y=Y*D/Z...
Where D is the distance between the eye position and the picture
plane (the screen). The value I use for D=128.
So the greater the value of 'Z' the further away the object
and therefore the smaller the resultant 'X' and 'Y' values.
This implies that objects appear smaller at a distance !
Eye 3d X,Y :
This instruction changes the "point of view" in opposite to
the picture plane.
If not initialised when using the Line 3d instruction X will
have a value of 160 and Y a value of 100.
F Plot X,Y,COLOUR :
This instruction does the same thing as the normal AMOS Plot
instruction, except that it is 2 to 3 times faster than the
standard AMOS version and that you must give the COLOUR
parameter !
F Plot is now fully compatible with the AMOS double buffering
process !
R=F Point(X,Y) :
This function does the same thing as the normal AMOS Point
instruction, except that it is 2 to 3 times faster than the
standard AMOS version !
F Circle X,Y,Radius,Colour :
Does the same thing as the normal Circle command but this new
version is up to 550 % (for big circles) faster than the ori-
ginal AMOS BASIC version ! For smaller circles you get a speed
factor lying around 250 to 400 % ...
All parameters are the same as in the normal Circle command
except that you must give a colour ( C ) parameter...
At this point you can only use this command in LOWRES screens
or HIRES+LACED screens.
Try it in a normal HIRES screen and you'll see what I'm talking
about...
There is a known bug in this command, do not use a radius above
180...there will be no crash, but the result is definitely not
a circle !