If you find these procedures/functions useful, please help
support the SHAREWARE system by sending a small donation ( up to
$5 ) to help with my college education. Reguardless of a
donation, use these routines in good health (and with a clear
concious), I hope you find them useful.
Send Any Replies To: EUROPA Software
314 Pleasant Meadows Dr.
Gaffney, SC 29340
Program: Rotate02 Last Revised: 7/7/89
Author: Jay Clary
Implementation: Turbo Pascal v.4.0 & v.5.0
Rational for Revision:
This is the second release of the Rotataion Unit. The first
version, while functionally correct, contained a massive
optimization flaw. This flaw caused unnecessary repetative calls
to the SINE COSINE func- tions, which in themseleves are very
processor intensive. Release two of the Unit, Rotate02, is at
least 12 fold faster than its predcessor.
This UNIT is to provide procedures to rotate two-dimensional
objects. The UNIT provides a TYPE definition called
'COORD_VALS'. This type is a one-dimensional array of integers
used to pass coordinate values to the ROTATE2D procedure. There
is a 101 element array for the X-values and a 101 element array
for the Y-values. Therefore objects may contain up to 100
coordinates ( this may be modified larger or smaller ). The
number of coordinates that define an object is held in element
zero of the X-value array. For instance, given the definition of
the X-val array as X_Coords : COORD_VALS; the number of
coordinates that define this object is held in X_Coords. The
angle of rotation can be any value in the limits of the INTEGER
data type. A positive angle yields counter-clockwise rotation, a
negative angle yields clockwise rotation.
Because of the Aspect Ratio of video monitors, objects will
distort when it is rotated. It is up to the USER to handle these
discrepencies. Perhaps future releases will provide services to
handle this and other problems releating to the distortion of
objects when rotated.
======================== DISCALIMER ==========================
These routines are provided to the Public Domain, AS IS. EUROPA
Software nor any of it's employees shall be held liable for any
incidental or consequential damage attributed to the ability or
inability to use this product.