This version has improved the text, has a hole with color, they have perfected the separation between characters, you can still rotate and change color.
Also for bold, I put "T_text_key" serves to show or hide text thick, of a drawing
(circle, circular arc, pie slice, ellipse, elliptical arc, elliptical section, polygon, star), are simply lines and "bolds"
and rotate indicating rotation angle in degrees.
Code: Select all
'LIB FREEBASIC_TURTLE VERSION #4
'LRCVS 13.08.13
' TO DRAW
DECLARE SUB T_INIT()'INIT TURTLE
DECLARE SUB T_AXES ()'DRAW CENTER AXES
DECLARE SUB T_HOME ()'GO HOME TURTLE
DECLARE SUB T_POINT ()'DRAW A POINT
DECLARE SUB T_GRID (BYVAL T_STEP_GRID AS DOUBLE)'DRAW A GRID
DECLARE SUB T_ORIENT (BYVAL T_ANGLE AS DOUBLE)'SET ORIENTATION TURTLE
DECLARE SUB T_GT (BYVAL T_X AS DOUBLE, BYVAL T_YY AS DOUBLE)'GO TO NEW POSITION X,Y
DECLARE SUB T_POSITION (BYVAL T_X AS DOUBLE, BYVAL T_YY AS DOUBLE)'NEW POSITION X,Y
DECLARE SUB T_FD (BYVAL T_DISTANCE AS DOUBLE)'FORWARD X DISTANCE
DECLARE SUB T_BK (BYVAL T_DISTANCE AS DOUBLE)'BACK X DISTANCE
DECLARE SUB T_RT (BYVAL T_ANGLE AS DOUBLE)'TURN RIGHT
DECLARE SUB T_LT (BYVAL T_ANGLE AS DOUBLE)'TURN LEFT
DECLARE SUB T_CIRCLE (BYVAL T_R AS DOUBLE)'DRAW A CIRCLE
DECLARE SUB T_ARC_CIR (BYVAL T_R1 AS DOUBLE,BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ARC CIRCLE
DECLARE SUB T_SEC_CIR (BYVAL T_R1 AS DOUBLE,BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)'DRAW A SECTOR CIRCLE
DECLARE SUB T_ELLIPSE (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE,BYVAL T_ANG_ROT AS DOUBLE) 'DRAW ELLIPSE
DECLARE SUB T_ARC_ELLIP (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE,BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ARC ELLIPTIC
DECLARE SUB T_SEC_ELLIP (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE,BYVAL T_ANG_ROT AS DOUBLE)'DRAW A SECTOR ELLIPTIC
DECLARE SUB T_POLY (BYVAL T_R AS DOUBLE, BYVAL T_NSIDE AS INTEGER, BYVAL T_ANG_ROT AS INTEGER)'DRAW A POLYGON
DECLARE SUB T_SEGMENT (BYVAL T_LX1 AS DOUBLE, BYVAL T_LY1 AS DOUBLE, BYVAL T_LX2 AS DOUBLE, BYVAL T_LY2 AS DOUBLE)
DECLARE SUB T_STAR (BYVAL T_NP AS INTEGER, BYVAL T_RG AS DOUBLE, BYVAL T_RP AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)
'TO CHARS
DECLARE SUB T_TEXT (BYREF T AS STRING)
'TO MATHS
DECLARE FUNCTION T_RADIANS(BYVAL T_ANGLE AS DOUBLE) AS DOUBLE 'TRANSFORM DEGREES TO RADIANS
DECLARE FUNCTION T_APHOTEME (BYVAL T_R AS DOUBLE, BYVAL T_NSIDE AS INTEGER) AS DOUBLE 'CALCULATE APHOTEME
DIM SHARED AS INTEGER N,R,T_CENTER_SCREEN_X, T_CENTER_SCREEN_Y, T_W, T_H, T_PEN, T_COLOR, T_HOLE_COLOR
DIM SHARED AS INTEGER T_HOLE,T_TEXT_HOLE, T_TEXT_HOLE_COLOR, T_TEXT_COLOR, T_TEXT_GROSS, T_TEXT_KEY, T_GROSS
DIM SHARED AS DOUBLE T_POSITION_X, T_POSITION_Y, T_ANGLE, T_STEP_GRID, T_HEADING, T_ROTTEXT,T_STAR_X,T_STAR_Y
DIM SHARED AS DOUBLE T_NEW_POSITION_X, T_NEW_POSITION_Y, T_X, T_Y, T_DISTANCE, T_SCALE, T_THICKNESS
DIM SHARED AS DOUBLE T_FIRST_POSITION_X, T_FIRST_POSITION_Y, T_LAST_POSITION_X, T_LAST_POSITION_Y
DIM SHARED AS DOUBLE T_X0, T_Y0, T_X1, T_Y1, T_X2, T_Y2, T_R, T_R1, T_R2, T_CP, T_INI, T_END
CONST PI = 4 * ATN(1)
CONST DTOR = ATN(1) / 45 'CONSTANTE DE CONVERSION ENTRE DEGREES (GRADOS) Y RADIANES
'NOTE : T_LONG = HYPOTENUSE
'::::::::::::::::::::::::::::::::::::::::::::::::PROGRAM
'::::::::::::::::::::::::::::::::::::::::::::::::SUBROUTINES AND FUNCTIONS
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_INIT
SUB T_INIT ()'INIT TURTLE
SCREENINFO T_W, T_H
T_CENTER_SCREEN_X = INT (T_W / 2)
T_CENTER_SCREEN_Y = INT (T_H / 2)
T_POSITION_X = T_CENTER_SCREEN_X
T_POSITION_Y = T_CENTER_SCREEN_Y
T_GT (T_POSITION_X, T_POSITION_Y)
T_PEN = 1
T_SCALE = 1
'T_THICKNESS = 0 'THICKNESS TEXT, VALUES = 0..
'T_HOLE = 0
T_HEADING = 0
T_ROTTEXT = 90
T_TEXT_KEY = 0
T_COLOR = 15 'COLOR LINES, CIRCLES, ELLIPSES, STAR..., VALUES = 0..
T_TEXT_COLOR = 12 ' COLOR CHARS, NUMBERS, SIMBOLS, VALUES = 0..
T_HOLE_COLOR = 14 'COLOR HOLE CHARSVALUES = 0..
T_GROSS = 2 'GROSS THICKNESS COLOR, VALUES = 0..4
T_TEXT_GROSS = 2
'WINDOW (T_W,T_H)-(0,0) 'MODE COORDENATES OF SCREEN
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_INIT
':::::::::::::::::::::::::::::::::::::::::::::::::INIT T_AXES
SUB T_AXES ()'DRAW CENTER AXES
LINE( 0, T_CENTER_SCREEN_Y)-( T_W, T_CENTER_SCREEN_Y ), 7
LINE( T_CENTER_SCREEN_X, 0)-( T_CENTER_SCREEN_X, T_H ), 7
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_AXES
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_GRID
SUB T_GRID(BYVAL T_STEP_GRID AS DOUBLE) 'DRAW A GRID
DIM N AS INTEGER
FOR N = 0 TO T_H STEP T_STEP_GRID
LINE(0, N)-(T_W, N), 8 'LINEAS HORIZONTALES
NEXT N
FOR N = 0 TO T_W STEP T_STEP_GRID
LINE(N, 0)-(N, T_H), 8 'LINEAS VERTICALES
NEXT N
T_AXES ()
END SUB
':::::::::::::::::::::::::::::::::::::::::::::::END T_GRID
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_RADIANS
FUNCTION T_RADIANS(BYVAL T_ANGLE AS DOUBLE) AS DOUBLE 'TRANSFORM DEGREES TO RADIANS
RETURN (T_ANGLE * DTOR)
END FUNCTION
'::::::::::::::::::::::::::::::::::::::::::::::::END T_RADIANS
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_APHOTEME
FUNCTION T_APHOTEME (BYVAL T_R AS DOUBLE, BYVAL T_NSIDE AS INTEGER) AS DOUBLE 'CALCULATE APHOTEME
DIM AS DOUBLE T_RGRAD, T_HIP
T_R = T_R
T_RGRAD = T_RADIANS(0)
T_X0 = (T_R * COS (T_RGRAD)) + T_POSITION_X
T_Y0 = (T_R * SIN (T_RGRAD)) + T_POSITION_Y
T_RGRAD = T_RADIANS(360/T_NSIDE)
T_X1 = (T_R * COS (T_RGRAD)) + T_POSITION_X
T_Y1 = (T_R * SIN (T_RGRAD)) + T_POSITION_Y
T_X2 = ABS(T_X0 - T_X1)
T_Y2 = ABS(T_Y0 - T_Y1)
T_HIP = SQR(T_X2*T_X2 + T_Y2*T_Y2)
RETURN SQR(T_R*T_R - (T_HIP/2)^2)
END FUNCTION
'::::::::::::::::::::::::::::::::::::::::::::::::END T_APHOTEME
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_ORIENT
SUB T_ORIENT (BYVAL T_ANGLE AS DOUBLE)'SET ORIENTATION TURTLE
T_HEADING = T_RADIANS (T_ANGLE)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_ORIENT
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_GT
SUB T_GT (BYVAL T_X AS DOUBLE, BYVAL T_Y AS DOUBLE) 'GO TO NEW POSITION X,Y
T_X = T_X * T_SCALE
T_Y = T_Y * T_SCALE
T_NEW_POSITION_X = T_CENTER_SCREEN_X + T_X
T_NEW_POSITION_Y = T_CENTER_SCREEN_Y + T_Y
IF T_THICKNESS = 0 AND T_PEN = 1 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_NEW_POSITION_X, T_NEW_POSITION_Y)
IF T_THICKNESS > 0 AND T_PEN = 1 THEN T_SEGMENT (T_POSITION_X, T_POSITION_Y, T_NEW_POSITION_X,T_NEW_POSITION_Y)
T_POSITION_X = T_NEW_POSITION_X
T_POSITION_Y = T_NEW_POSITION_Y
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_GT
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_POSITION
SUB T_POSITION (BYVAL T_X AS DOUBLE, BYVAL T_Y AS DOUBLE)
T_PEN = 0
T_GT (T_X,T_Y)
T_PEN = 1
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_POSITION
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_HOME
SUB T_HOME ()'GO HOME TURTLE
'IF T_PEN = 1 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_CENTER_SCREEN_X,T_CENTER_SCREEN_Y)
T_PEN = 0
T_POSITION_X = INT(T_W/2)
T_POSITION_Y = INT(T_H/2)
T_PEN = 1
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_HOME
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_FD
SUB T_FD (BYVAL T_DISTANCE AS DOUBLE)'FORWARD X DISTANCE
T_DISTANCE = T_DISTANCE * T_SCALE
T_NEW_POSITION_X = T_POSITION_X + (T_DISTANCE * SIN(T_HEADING))
T_NEW_POSITION_Y = T_POSITION_Y - (T_DISTANCE * COS(T_HEADING))
IF T_PEN = 1 AND T_THICKNESS = 0 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_NEW_POSITION_X, T_NEW_POSITION_Y)
IF T_PEN = 1 AND T_THICKNESS > 0 THEN T_SEGMENT (T_POSITION_X, T_POSITION_Y,T_NEW_POSITION_X, T_NEW_POSITION_Y)
T_POSITION_X = T_NEW_POSITION_X
T_POSITION_Y = T_NEW_POSITION_Y
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_FD
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_BK
SUB T_BK (BYVAL T_DISTANCE AS DOUBLE)'BACK X DISTANCE
T_DISTANCE = T_DISTANCE * T_SCALE
T_NEW_POSITION_X = T_POSITION_X - ( T_DISTANCE * SIN (T_HEADING))
T_NEW_POSITION_Y = T_POSITION_Y + ( T_DISTANCE * COS (T_HEADING))
IF T_PEN = 1 AND T_THICKNESS = 0 THEN LINE(T_POSITION_X, T_POSITION_Y)-(T_NEW_POSITION_X, T_NEW_POSITION_Y)
IF T_PEN = 1 AND T_THICKNESS > 0 THEN T_SEGMENT (T_POSITION_X, T_POSITION_Y, T_NEW_POSITION_X, T_NEW_POSITION_Y)
T_POSITION_X = T_NEW_POSITION_X
T_POSITION_Y = T_NEW_POSITION_Y
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_BK
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_RT
SUB T_RT (BYVAL T_ANGLE AS DOUBLE)'TURN RIGHT
T_HEADING = T_HEADING + T_RADIANS (T_ANGLE)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_RT
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_LT
SUB T_LT (BYVAL T_ANGLE AS DOUBLE)'TURN LEFT
T_HEADING = T_HEADING - T_RADIANS (T_ANGLE)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_LT
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_LONG
FUNCTION T_LONG (BYVAL T_X1 AS DOUBLE, BYVAL T_Y1 AS DOUBLE, BYVAL T_X2 AS DOUBLE, BYVAL T_Y2 AS DOUBLE) AS DOUBLE ' CALCULATE DISTANCE /LENGHT TWO POINTS
DIM AS DOUBLE DX = T_X1 - T_X2
DIM AS DOUBLE DY = T_Y1 - T_Y2
RETURN SQR(DX*DX + DY*DY)
END FUNCTION
'::::::::::::::::::::::::::::::::::::::::::::::::END T_LONG
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_CIRCLE
SUB T_CIRCLE (BYVAL T_R AS DOUBLE)
'DRAW A CIRCLE
'T_R = RADIUS CIRCLE
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R * T_SCALE
T_RGRAD = T_RADIANS (0)
T_X0 = (T_R1 * COS(T_RGRAD))+T_POSITION_X
T_Y0 = (T_R1 * SIN(T_RGRAD))+T_POSITION_Y
T_FIRST_POSITION_X = T_X0
T_FIRST_POSITION_Y = T_Y0
FOR T_GRAD = 0 TO 360
T_RGRAD = T_RADIANS (T_GRAD)
T_X1 = (T_R1 * COS(T_RGRAD))+T_POSITION_X
T_Y1 = (T_R1 * SIN(T_RGRAD))+T_POSITION_Y
IF T_PEN = 1 THEN LINE (T_X0, T_Y0)-(T_X1, T_Y1),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle (T_X1, T_Y1),t_thickness,t_color,,,,f
T_X0 = T_X1
T_Y0 = T_Y1
T_LAST_POSITION_X = T_X1
T_LAST_POSITION_Y = T_Y1
NEXT T_GRAD
IF t_HOLE = 1 THEN
FOR T_GRAD = 0 TO 360
T_RGRAD = T_RADIANS (T_GRAD)
T_X1 = (T_R1 * COS(T_RGRAD))+T_POSITION_X
T_Y1 = (T_R1 * SIN(T_RGRAD))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle (T_X1, T_Y1),t_thickness/t_gross,t_hole_color,,,,f
T_X0 = T_X1
T_Y0 = T_Y1
T_LAST_POSITION_X = T_X1
T_LAST_POSITION_Y = T_Y1
NEXT T_GRAD
END IF
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_CIRCLE
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_POLY
SUB T_POLY (BYVAL T_R AS DOUBLE, BYVAL T_NSIDE AS INTEGER, BYVAL T_ANG_ROT AS INTEGER)
'DRAW AND ROTATE A POLYGON
'T_R = RADIUS POLYGON
'T_NSIDE = NUMBER OF SIDES
'T_ANG_ROT = DEGREES OF ROTATION
DIM AS DOUBLE T_RGRAD, T_GRAD, T_X3, T_Y3
T_R = T_R * T_SCALE
T_RGRAD = T_RADIANS (T_ANG_ROT)
T_X0 = (T_R * COS (T_RGRAD))
T_Y0 = (T_R * SIN (T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
FOR T_GRAD = T_ANG_ROT TO T_ANG_ROT + 360 STEP 360/T_NSIDE
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R * COS (T_RGRAD))
T_Y2 = (T_R * SIN (T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 and t_thickness = 0 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then t_segment (T_X1, T_Y1, T_X3, T_Y3)
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_PEN = 1 and t_thickness = 0 THEN LINE (T_X3, T_Y3)-(T_FIRST_POSITION_X,T_FIRST_POSITION_Y),T_COLOR
if t_pen = 1 and t_thickness > 0 then t_segment (T_X3, T_Y3, T_FIRST_POSITION_X,T_FIRST_POSITION_Y)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_POLY
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_ELLIPSE
SUB T_ELLIPSE (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE,BYVAL T_ANG_ROT AS DOUBLE)
'DRAW A ELLIPSE WITH ROTATION
'T_R1 = RADIUS BIGGER
'T_R2 = RADIUS SMALLER
'T_ANG_ROT = DEGREES TO ROTATE
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R1 * T_SCALE
T_R2 = T_R2 * T_SCALE
T_RGRAD = T_RADIANS (T_ANG_ROT)
T_X0 = (T_R1 * COS(T_RGRAD))
T_Y0 = (T_R2 * SIN(T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
FOR T_GRAD = T_ANG_ROT TO T_ANG_ROT + 360
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 and t_pen = 0 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness, t_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_HOLE = 1 THEN
FOR T_GRAD = T_ANG_ROT TO T_ANG_ROT + 360
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness/ T_GROSS, t_hole_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
END IF
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_ELLIPSE
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_POINT
SUB T_POINT ()
'DRAW A POINT
IF T_PEN = 1 THEN PSET (T_POSITION_X, T_POSITION_Y),T_COLOR
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_POINT
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_ARC_CIR
SUB T_ARC_CIR (BYVAL T_R1 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ARC CIRCLE
'DRAW A ARC CIR
'T_R = RADIUS CIRCLE
'T_INI = ANGLE INIT
'T_END = ANGLE END
'T_ANG_ROT = ANGLE OF ROTATION
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R1 * T_SCALE
T_RGRAD = T_RADIANS (T_INI)
T_X0 = (T_R1 * COS(T_RGRAD))
T_Y0 = (T_R1 * SIN(T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R1 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness,t_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_HOLE = 1 THEN
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R1 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness/t_gross,t_hole_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
END IF
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_ARC_CIR
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_SEC_CIR
SUB T_SEC_CIR (BYVAL T_R1 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ARC CIRCLE
'DRAW A SECTOR CIR
'T_R = RADIUS CIRCLE
'T_INI = ANGLE INIT
'T_END = ANGLE END
'T_ANG_ROT = ANGLE OF ROTATION
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R1 * T_SCALE
T_RGRAD = T_RADIANS (T_INI)
T_X0 = (T_R1 * COS(T_RGRAD))
T_Y0 = (T_R1 * SIN(T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
IF T_PEN = 1 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_X1, T_Y1),T_COLOR
if t_pen = 1 and t_thickness > 0 then t_segment (T_POSITION_X, T_POSITION_Y, T_X1, T_Y1)
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R1 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3), t_thickness,t_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_HOLE = 1 THEN
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R1 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3), t_thickness/t_gross,t_hole_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
END IF
IF T_PEN = 1 THEN LINE (T_X3, T_Y3)-(T_POSITION_X, T_POSITION_Y),T_COLOR
if t_pen = 1 and t_thickness > 0 then t_segment (T_X3, T_Y3,T_POSITION_X, T_POSITION_Y)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_SEC_CIR
':::::::::::::::::::::::::::::::::::::::::::::::INIT T_ARC_ELLIP
SUB T_ARC_ELLIP (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE,BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ARC ELLIPTIC
'DRAW A ARC ELLIPTIC
'T_R1 = RADIUS 1
'T_R2 = RADIUS 2
'T_INI = ANGLE INIT
'T_END = ANGLE END
'T_ANG_ROT = ANGLE OF ROTATION
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R1 * T_SCALE
T_R2 = T_R2 * T_SCALE
T_RGRAD = T_RADIANS (T_INI)
T_X0 = (T_R1 * COS(T_RGRAD))
T_Y0 = (T_R2 * SIN(T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness,t_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_HOLE = 1 THEN
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle (T_X3, T_Y3),t_thickness/t_gross,t_hole_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
END IF
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_ARC_ELLIP
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_SEC_ELLIP
SUB T_SEC_ELLIP (BYVAL T_R1 AS DOUBLE, BYVAL T_R2 AS DOUBLE, BYVAL T_INI AS DOUBLE, BYVAL T_END AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)'DRAW A ELLIPTIC SECTOR
'DRAW A SECTOR ELLIPTIC
'T_R1 = RADIUS 1
'T_R2 = RADIUS 2
'T_INI = ANGLE INIT
'T_END = ANGLE END
'T_ANG_ROT = ANGLE OF ROTATION
DIM AS DOUBLE T_RGRAD, T_GRAD,T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
T_R1 = T_R1 * T_SCALE
T_R2 = T_R2 * T_SCALE
T_RGRAD = T_RADIANS (T_INI)
T_X0 = (T_R1 * COS(T_RGRAD))
T_Y0 = (T_R2 * SIN(T_RGRAD))
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
IF T_PEN = 1 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_X1, T_Y1),T_COLOR
if t_pen = 1 and t_thickness > 0 then t_segment (T_POSITION_X, T_POSITION_Y, T_X1, T_Y1)
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 THEN LINE (T_X1, T_Y1)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and t_thickness > 0 then circle(T_X3, T_Y3), t_thickness,t_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
IF T_HOLE = 1 THEN
FOR T_GRAD = T_INI TO T_END
T_RGRAD = T_RADIANS (T_GRAD)
T_X2 = (T_R1 * COS(T_RGRAD))
T_Y2 = (T_R2 * SIN(T_RGRAD))
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
if t_pen = 1 and t_thickness > 0 then circle(T_X3, T_Y3), t_thickness/t_gross,t_hole_color,,,,f
T_X1 = T_X3
T_Y1 = T_Y3
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
NEXT T_GRAD
END IF
IF T_PEN = 1 THEN LINE (T_POSITION_X, T_POSITION_Y)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 AND t_thickness > 0 then t_segment (T_POSITION_X, T_POSITION_Y,T_X3, T_Y3)
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_SEC_ELLIP
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_STAR
SUB T_STAR (BYVAL T_NP AS INTEGER, BYVAL T_RG AS DOUBLE, BYVAL T_RP AS DOUBLE, BYVAL T_ANG_ROT AS DOUBLE)
DIM AS INTEGER C
DIM AS DOUBLE NP, N, T_X0,T_Y0,T_X1,T_Y1,T_X2,T_Y2,T_X3,T_Y3
IF T_NP = 0 THEN T_NP = 1:END IF
T_NP = ABS(T_NP)
NP = (180 / T_NP)
C = 0
R = T_RG*T_SCALE
T_X0 = (T_R * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y0 = (T_R * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
T_X1 = (T_X0 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y0 * SIN (T_RADIANS (T_ANG_ROT)))'+T_POSITION_X
T_Y1 = (T_X0 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y0 * COS (T_RADIANS (T_ANG_ROT)))'+T_POSITION_Y
T_FIRST_POSITION_X = T_X1
T_FIRST_POSITION_Y = T_Y1
FOR N = T_ANG_ROT TO (T_ANG_ROT + 360 +NP) STEP NP
IF C MOD 2 = 0 THEN
R = T_RG * T_SCALE
ELSE
R = T_RP * T_SCALE
END IF
T_X2 = (COS(T_RADIANS(N)) * R )
T_Y2 = (SIN(T_RADIANS(N)) * R )
T_X3 = (T_X2 * COS (T_RADIANS (T_ANG_ROT))) - (T_Y2 * SIN (T_RADIANS (T_ANG_ROT)))+T_POSITION_X
T_Y3 = (T_X2 * SIN (T_RADIANS (T_ANG_ROT))) + (T_Y2 * COS (T_RADIANS (T_ANG_ROT)))+T_POSITION_Y
IF T_PEN = 1 AND C > 0 and t_thickness = 0 THEN LINE (T_X0,T_Y0)-(T_X3, T_Y3),T_COLOR
if t_pen = 1 and c > 0 and t_thickness > 0 then t_segment (T_X0,T_Y0, T_X3, T_Y3)
C = C + 1
T_X0 = T_X3
T_Y0 = T_Y3
NEXT N
T_LAST_POSITION_X = T_X3
T_LAST_POSITION_Y = T_Y3
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_STAR
'::::::::::::::::::::::::::::::::::::::::::::::::INIT T_SEGMENT
SUB T_SEGMENT (BYVAL T_LX1 AS DOUBLE, BYVAL T_LY1 AS DOUBLE, BYVAL T_LX2 AS DOUBLE, BYVAL T_LY2 AS DOUBLE)
DIM AS INTEGER N
DIM AS DOUBLE HIP, ANG, T_LX, T_LY, T_LPX, T_LPY, DX, DY
DX = ABS (T_LX1 - T_LX2)
DY = ABS (T_LY1 - T_LY2)
HIP = SQR(DX*DX + DY*DY)
ANG = ATN(DY / DX)
FOR N = 0 TO HIP
T_LY = SIN(ANG) * N
T_LX = COS(ANG) * N
IF T_LX1 < T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY + T_LY1 : END IF
IF T_LX1 < T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX1 - T_LX : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 < T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 - T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 + T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX1 : T_LPY = T_LY1 : END IF
IF t_pen = 1 and T_THICKNESS > 0 THEN CIRCLE (T_LPX, T_LPY), T_THICKNESS, t_color,,,,F
NEXT N
IF T_HOLE = 1 THEN
FOR N = 0 TO HIP
T_LY = SIN(ANG) * N
T_LX = COS(ANG) * N
IF T_LX1 < T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY + T_LY1 : END IF
IF T_LX1 < T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX1 - T_LX : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 < T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 - T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 + T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX1 : T_LPY = T_LY1 : END IF
IF T_PEN = 1 AND T_THICKNESS > 0 THEN CIRCLE (T_LPX, T_LPY), T_THICKNESS/T_GROSS,T_HOLE_COLOR,,,,F
NEXT N
END IF
IF T_TEXT_KEY = 1 THEN
FOR N = 0 TO HIP
T_LY = SIN(ANG) * N
T_LX = COS(ANG) * N
IF T_LX1 < T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY + T_LY1 : END IF
IF T_LX1 < T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX1 - T_LX : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 < T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 - T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 + T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX1 : T_LPY = T_LY1 : END IF
IF T_PEN = 1 AND T_THICKNESS > 0 THEN CIRCLE (T_LPX, T_LPY), T_THICKNESS,T_TEXT_COLOR,,,,F
NEXT N
FOR N = 0 TO HIP
T_LY = SIN(ANG) * N
T_LX = COS(ANG) * N
IF T_LX1 < T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY + T_LY1 : END IF
IF T_LX1 < T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX1 : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX1 - T_LX : T_LPY = T_LY1 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 < T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 - T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 > T_LY2 THEN T_LPX = T_LX + T_LX2 : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 < T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 - T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 > T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX2 + T_LX : T_LPY = T_LY2 + T_LY : END IF
IF T_LX1 = T_LX2 AND T_LY1 = T_LY2 THEN T_LPX = T_LX1 : T_LPY = T_LY1 : END IF
IF T_PEN = 1 AND T_THICKNESS > 0 THEN CIRCLE (T_LPX, T_LPY), T_THICKNESS/T_TEXT_GROSS,T_TEXT_HOLE_COLOR,,,,F
NEXT N
END IF
END SUB
'::::::::::::::::::::::::::::::::::::::::::::::::END T_SEGMENT
'=======================================================================
' characters are defined before use by t_text()
'=======================================================================
Sub t_let_A (Byval t_rottext As Double)'UCASE A
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 5 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 5 : t_bk 3 : t_rt 90 : t_fd 4 : t_bk 4 : t_lt 90 : t_fd 3 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_B (Byval t_rottext As Double)'UCASE B
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 3 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 3 : t_bk 3 : t_lt 135 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 3 : t_rt 180 : t_fd 2
t_pen = 0 : t_fd 3 :t_orient 0
End Sub
Sub t_let_C (Byval t_rottext As Double)'UCASE C
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 1
t_pen = 1 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414
t_pen = 0 : t_rt 45 : t_fd 4 : t_rt 45
t_pen = 1 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_bk 1.414 : t_rt 135
t_pen = 0 : t_fd 4 : t_orient 0
End Sub
Sub t_let_D (Byval t_rottext As Double)'UCASE D
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 3 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 3 : t_bk 3 : t_rt 180
t_pen = 0 : t_fd 2 : t_orient 0
End Sub
Sub t_let_E (Byval t_rottext As Double)'UCASE E
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1: t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 4 : t_bk 4 : t_rt 90 : t_fd 3 : t_lt 90 : t_fd 2 : t_bk 2 : t_rt 90 : t_fd 3 : t_lt 90 : t_fd 4
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_F (Byval t_rottext As Double)'UCASE F
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 4 : t_bk 4 : t_rt 90 : t_fd 3 : t_lt 90 : t_fd 2 : t_bk 2 : t_rt 90 : t_fd 3 : t_lt 90
t_pen = 0 : t_fd 5 : t_orient 0
End Sub
Sub t_let_G (Byval t_rottext As Double)'UCASE G
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 4 : t_bk 4 : t_rt 90 : t_fd 6 : t_lt 90 : t_fd 4 : t_lt 90 : t_fd 3 : t_lt 90 : t_fd 2
t_pen = 0 : t_bk 2 : t_lt 90 : t_fd 3: T_LT 90 :T_FD 1 : t_orient 0
End Sub
Sub t_let_H (Byval t_rottext As Double)'UCASE H
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_bk 3 : t_rt 90 : t_fd 4 : t_lt 90 : t_fd 3 : t_bk 6 : t_lt 90
t_pen = 0 : t_bk 1 : t_orient 0
End Sub
Sub t_let_I (Byval t_rottext As Double)'UCASE I
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_bk 6 : t_rt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_J (Byval t_rottext As Double)'UCASE J
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 3 : t_bk 3 : t_rt 90 : t_fd 4 : t_lt 90 : t_fd 6 : t_bk 6 : t_rt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_K (Byval t_rottext As Double)'UCASE K
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_bk 3 : t_rt 45 : t_fd 4.2 : t_bk 4.2 : t_rt 90 : t_fd 4.2 : t_rt 45
t_pen = 0 : T_LT 90:t_fd 1 : t_orient 0
End Sub
Sub t_let_L (Byval t_rottext As Double)'UCASE L
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_bk 6 : t_rt 90 : t_fd 4
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_M (Byval t_rottext As Double)'UCASE M
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 145 : t_fd 3.605 : t_lt 110 : t_fd 3.605 : t_rt 145 : t_fd 6 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_N (Byval t_rottext As Double)'UCASE N
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 147 : t_fd 7.211 : t_lt 147 : t_fd 6 : t_bk 6 : t_rt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_O (Byval t_rottext As Double)'UCASE O
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 4 : t_rt 90 : t_fd 6 : t_rt 90 : t_fd 4 : t_bk 4
t_pen = 0 :T_BK 1 : t_orient 0
End Sub
Sub t_let_P (Byval t_rottext As Double)'UCASE P
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 3 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 3 : t_lt 90 : t_fd 3 : t_lt 90
t_pen = 0 : t_fd 5 : t_orient 0
End Sub
Sub t_let_Q (Byval t_rottext As Double)'UCASE Q
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 90
t_pen = 1 : t_lt 45 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2
t_pen = 0 : t_bk 3 : t_rt 45
t_pen = 1 : t_fd 3 : t_bk 3 : t_rt 135
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_R (Byval t_rottext As Double)'UCASE R
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90
t_pen = 1 : t_fd 6 : t_rt 90 : t_fd 3 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 3 : t_rt 218 : t_fd 4.9 : t_lt 45
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_S (Byval t_rottext As Double)'UCASE S
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_bk 1.414 : t_rt 135 : t_fd 2 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 45
t_pen = 0 : t_fd 5 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_T (Byval t_rottext As Double)'UCASE T
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 3 : t_lt 90
t_pen = 1 : t_fd 6 : t_lt 90 : t_fd 2 : t_bk 4 : t_lt 90
t_pen = 0 : t_fd 6 : t_lt 90 : T_FD 1 : t_orient 0
End Sub
Sub t_let_U (Byval t_rottext As Double)'UCASE U
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_rt 45 : t_fd 5 : t_rt 90
t_pen = 0 : t_fd 4
t_pen = 1 : t_rt 90 : t_fd 5 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 2
t_pen = 0 : t_bk 3 : t_BK 1 : t_orient 0
End Sub
Sub t_let_V (Byval t_rottext As Double)'UCASE V
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 3 : t_lt 108.426
t_pen = 1 : t_fd 6.324 : t_bk 6.324 : t_rt 36.872 : t_fd 6.324 : t_rt 161.564
t_pen = 0 : t_fd 6 : t_lt 90 :T_FD 1: t_orient 0
End Sub
Sub t_let_W (Byval t_rottext As Double)'UCASE W
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 99.403
t_pen = 1 : t_fd 6.082 : t_bk 6.082 : t_rt 27.9 : t_fd 3.162 : t_rt 143 : t_fd 3.162 : t_rt 208 : t_fd 6.082 : t_rt 170.5
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_let_X (Byval t_rottext As Double)'UCASE X
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 56.3
t_pen = 1 : t_fd 7.21 : t_lt 123.5
t_pen = 0 : t_fd 4
t_pen = 1 : t_lt 124 : t_fd 7.21 : t_lt 57 : T_PEN = 0 :t_fd 1 : t_orient 0
End Sub
Sub t_let_Y (Byval t_rottext As Double)'UCASE Y
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 56.3
t_pen = 1 : t_fd 7.21 : t_lt 123.5
t_pen = 0 : t_fd 4
t_pen = 1 : t_lt 124 : t_fd 3.60
t_pen = 0 : t_fd 3.60 : t_lt 57 : t_fd 1 : t_orient 0
End Sub
Sub t_let_Z (Byval t_rottext As Double)'UCASE Z
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 56.3
t_pen = 1 : t_fd 7.21 : t_lt 123.5 : t_fd 4 : t_bk 4 : t_lt 56.3 : t_fd 7.21 : t_lt 123.5 : t_fd 4
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_let_SPACE (Byval t_rottext As Double)'SPACE
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_orient 0
End Sub
'NUMBERS
Sub t_num_1 (Byval t_rottext As Double)'NUMBER 1
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 4
t_pen = 1 : t_rt 45 : t_fd 1.414 : t_fd 1.414 : t_rt 135 : t_fd 6 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_num_2 (Byval t_rottext As Double)'NUMBER 2
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 5
t_pen = 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 37 : t_fd 5 : t_lt 127 : t_fd 3
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_num_3 (Byval t_rottext As Double)'NUMBER 3
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 5
t_pen = 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_lt 90 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_bk 1.414 : t_rt 135
t_pen = 0 : t_fd 3 : t_orient 0
End Sub
Sub t_num_4 (Byval t_rottext As Double)'NUMBER 4
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 3
t_pen = 1 : t_rt 45 : t_fd 1.414*3 : t_rt 135 : t_fd 3 : t_rt 90 : t_fd 3 : t_bk 3 : t_lt 90 : t_fd 3 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_num_5 (Byval t_rottext As Double)'NUMBER 5
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_bk 1.414 : t_rt 135 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 2 : t_rt 90 : t_fd 3 : t_rt 90 : t_fd 3 : t_rt 90
t_pen = 0 : t_fd 6 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_num_6 (Byval t_rottext As Double)'NUMBER 6
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_bk 1.414 : t_rt 135 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_bk 4 : t_rt 225 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 90
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_num_7 (Byval t_rottext As Double)'NUMBER 7
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 64
t_pen = 1 : t_fd 6.6 : t_lt 116 : t_fd 2.9 : t_lt 117
t_pen = 0 : t_fd 6.6 : t_lt 63 : t_fd 1 : t_orient 0
End Sub
Sub t_num_8 (Byval t_rottext As Double)'NUMBER 8
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_bk 1.414 : t_rt 135 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_bk 1 : t_lt 135 : t_fd 1.414 : t_lt 90 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45
t_pen = 0 : t_bk 1 : t_lt 90 : t_fd 3 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_num_9 (Byval t_rottext As Double)'NUMBER 9
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 4 : t_lt 90
t_pen = 1 : t_fd 6 : t_lt 90 : t_fd 2 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 2 : t_rt 90 : t_fd 3 : t_lt 90
t_pen = 0 : t_fd 1 : t_orient 0
End Sub
Sub t_num_0 (Byval t_rottext As Double)'NUMBER 0
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1
t_pen = 0 : t_bk 3 : t_orient 0
End Sub
'symbolS
Sub t_sym_1 (Byval t_rottext As Double)'symbol (
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_rt 45 : t_fd 4 : t_rt 45 : t_fd 1.414 : t_rt 135
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_sym_2 (Byval t_rottext As Double)'symbol )
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 45
t_pen = 1 : t_fd 1.414 : t_lt 45 : t_fd 4 : t_lt 45 : t_fd 1.414 : t_lt 135
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 2 : t_orient 0
End Sub
Sub t_sym_3 (Byval t_rottext As Double)'symbol [
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_fd 1 : t_bk 1 : t_lt 90 : t_fd 6 : t_rt 90 : t_fd 1 : t_rt 90
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_sym_4 (Byval t_rottext As Double)'symbol ]
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_fd 1 : t_lt 90 : t_fd 6 : t_lt 90 : t_fd 1 : t_lt 90
t_pen = 0 : t_fd 6 : t_lt 90 : t_fd 2 : t_orient 0
End Sub
Sub t_sym_5 (Byval t_rottext As Double)'symbol !
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_lt 90 : t_fd 1
t_pen = 0 : t_fd 2
t_pen = 1 : t_fd 3
t_pen = 0 : t_bk 6 : t_rt 90 : t_FD 1 : t_orient 0
End Sub
Sub t_sym_6 (Byval t_rottext As Double)'symbol ¡
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_lt 90 : t_fd 3 :t_pen = 0 : t_fd 2:t_pen = 1 :t_fd 1
t_bk 1:t_pen = 0 :t_bk 2:t_pen = 0 :t_bk 3 :t_rt 90 :t_fd 1:t_orient 0
End Sub
Sub t_sym_7 (Byval t_rottext As Double)'symbol ?
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 4
t_pen = 1 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_rt 45 : t_fd 1 : t_rt 45 : t_fd 1.414 : t_lt 45 : t_fd 1
t_pen = 0 : t_fd 1
t_pen = 1 : t_fd 1
t_pen = 0 : t_lt 90 : t_fd 2 : t_orient 0
End Sub
Sub t_sym_8 (Byval t_rottext As Double)'symbol ¿
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 6 : t_rt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 1
t_pen = 0 : t_fd 1
t_pen = 1 : t_fd 1 : t_rt 90 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1 : t_lt 45 : t_fd 1.414 : t_lt 45 : t_fd 1
t_pen = 0 : t_bk 2 : t_rt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_sym_9 (Byval t_rottext As Double)'symbol _
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_fd 3
t_pen = 0 : t_fd 1 :t_orient 0
End Sub
Sub t_sym_10 (Byval t_rottext As Double)'symbol -
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 3 : t_rt 90
t_pen = 1 : t_fd 3
t_pen = 0 : t_rt 90 : t_fd 3 : t_lt 90 : t_fd 1 :t_orient 0
End Sub
Sub t_sym_11 (Byval t_rottext As Double)'symbol .
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90
t_pen = 0 : t_fd 2 : t_orient 0
End Sub
Sub t_sym_12 (Byval t_rottext As Double)'symbol :
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1
t_pen = 1 : t_lt 90 : t_fd 1
t_pen = 0 : t_fd 1
t_pen = 1 : t_fd 1 : t_rt 90 : t_fd 1 : t_rt 90 : t_fd 1 : t_rt 90 : t_fd 1 : t_bk 1
t_pen = 0 : t_lt 90 : t_fd 1 : t_rt 90
t_pen = 1 : t_fd 1 : t_bk 1 : t_lt 90 : t_fd 1 : t_rt 90 : t_fd 1 : t_bk 1:t_pen = 0 :t_bk 1: t_orient 0
End Sub
Sub t_sym_13 (Byval t_rottext As Double)'symbol +
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 3 : t_lt 90
t_pen = 1 : t_fd 6 : t_bk 3 : t_lt 90 : t_fd 1.5 : t_bk 3 : t_lt 90
t_pen = 0 : t_fd 3 : t_lt 90 : t_fd 1 : t_orient 0
End Sub
Sub t_sym_14 (Byval t_rottext As Double)'symbol *
color t_text_color
Dim N As Integer
t_pen = 0 : t_rt t_rottext : t_fd 3 : t_Rt 90
t_pen = 0 : T_BK 1
T_PEN = 1
For N = 0 To 8
t_bk 2 : t_lt 45 : t_fd 2
Next N
t_pen = 0 : t_lt 135 : t_BK 1.5 : t_RT 90:t_fd 1 : t_orient 0
End Sub
Sub t_sym_15 (Byval t_rottext As Double)'symbol /
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 64
t_pen = 1 : t_fd 6.6 : t_bk 6.6 : t_rt 64
t_pen = 0 : t_fd 4: t_orient 0
End Sub
Sub t_sym_16 (Byval t_rottext As Double)'symbol \
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 4 : t_lt 116
t_pen = 1 : t_fd 6.6 : t_bk 6.6 : t_lt 64
t_pen = 0 : t_bk 1 : t_orient 0
End Sub
Sub t_sym_17 (Byval t_rottext As Double)'symbol >
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 1 : t_rt 90 : t_lt 45
t_pen = 1 : t_fd 1.414*2 : t_lt 90 : t_fd 1.414*2
t_pen = 0 : t_lt 135 : t_fd 5 : t_lt 90 : t_fd 3 : t_orient 0
End Sub
Sub t_sym_18 (Byval t_rottext As Double)'symbol <
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 3 : t_lt 90 : t_fd 1 : t_rt 90 : t_lt 135
t_pen = 1 : t_fd 1.414*2 : t_rt 90 : t_fd 1.414*2
t_pen = 0 : t_rt 135 : t_fd 5 : t_lt 90 : t_fd 1: t_orient 0
End Sub
Sub t_sym_19 (Byval t_rottext As Double)'symbol =
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 3 : t_bk 3
t_pen = 0 : t_lt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 3 : t_rt 90
t_pen = 0 : t_fd 4 : t_lt 90 : t_fd 1: t_orient 0
End Sub
Sub t_sym_20 (Byval t_rottext As Double)'symbol #
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 3 : t_bk 3
t_pen = 0 : t_lt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 3 : t_rt 90
t_pen = 0 : t_fd 4 : t_rt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 6 : t_rt 90
t_pen = 0 : t_fd 1 : t_rt 90
t_pen = 1 : t_fd 6
t_pen = 0 : t_lt 90 : t_fd 2 : t_orient 0
End Sub
Sub t_sym_21 (Byval t_rottext As Double)'symbol,
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 45
t_pen = 1 : t_fd 1.414
t_pen = 0 : t_rt 135 : t_fd 1 : t_lt 90 :t_fd 1: t_orient 0
End Sub
Sub t_sym_22 (Byval t_rottext As Double)'symbol ;
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 45
t_pen = 1 : t_fd 1.414
t_pen = 0 : t_lt 45 : t_fd 1
t_pen = 1 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_rt 90
t_pen = 0 : t_fd 2 : t_lt 90 :t_fd 1: t_orient 0
End Sub
Sub t_sym_23 (Byval t_rottext As Double)'symbol $
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 2 : t_lt 90 : t_fd 1 : t_rt 90 : t_lt 135
t_pen = 1 : t_fd 1.414 : t_bk 1.414 : t_rt 135 : t_fd 2 : t_lt 45 : t_fd 1.414 : t_lt 90 : t_fd 1.414 : t_lt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 90 : t_fd 1.414 : t_rt 45 : t_fd 2 : t_rt 45 : t_fd 1.414 : t_rt 45
t_pen = 0 : t_fd 4 : t_rt 90 : t_fd 2 : t_rt 90
t_pen = 1 : t_fd 6
t_pen = 0 : t_rt 90 : t_fd 2 : t_rt 90 : t_fd 6
t_pen = 0 : t_lt 90: t_fd 1:t_orient 0
End Sub
Sub t_sym_24 (Byval t_rottext As Double)'symbol %
color t_text_color
t_pen = 0 : t_rt t_rottext : t_fd 1 : t_lt 64
t_pen = 1 : t_fd 6.6 : t_lt 116
t_pen = 0 : t_fd 2.9 : t_lt 90 : t_fd 2
t_pen = 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1 : t_lt 90 : t_fd 1
t_pen = 0 : t_fd 4 : t_lt 90 : t_fd 2 : t_lt 90
t_pen = 0 : t_fd 1
t_pen = 1 : t_fd 1 : t_rt 90 : t_fd 1 : t_rt 90 : t_fd 1 : t_rt 90 : t_fd 1 : t_rt 90 : t_lt 180
t_pen = 0 : t_fd 0.9 : t_lt 90 : t_fd 2 : t_orient 0
End Sub
'================================================
' use the characters defined before
'================================================
'::::::::::::::::::::::::::::::::::::::::::::::::Init t_text
Sub t_text (Byref t_string As String)
Dim As Integer t_longtext, N
t_longtext = Len(t_string)
For N = 1 To t_longtext
Select Case Mid(t_string, n, 1)
'char uppers
Case "A" : t_let_A (t_rottext)
Case "B" : t_let_B (t_rottext)
Case "C" : t_let_C (t_rottext)
Case "D" : t_let_D (t_rottext)
Case "E" : t_let_E (t_rottext)
Case "F" : t_let_F (t_rottext)
Case "G" : t_let_G (t_rottext)
Case "H" : t_let_H (t_rottext)
Case "I" : t_let_I (t_rottext)
Case "J" : t_let_J (t_rottext)
Case "K" : t_let_K (t_rottext)
Case "L" : t_let_L (t_rottext)
Case "M" : t_let_M (t_rottext)
Case "N" : t_let_N (t_rottext)
Case "O" : t_let_O (t_rottext)
Case "P" : t_let_P (t_rottext)
Case "Q" : t_let_Q (t_rottext)
Case "R" : t_let_R (t_rottext)
Case "S" : t_let_S (t_rottext)
Case "T" : t_let_T (t_rottext)
Case "U" : t_let_U (t_rottext)
Case "V" : t_let_V (t_rottext)
Case "W" : t_let_W (t_rottext)
Case "X" : t_let_X (t_rottext)
Case "Y" : t_let_Y (t_rottext)
Case "Z" : t_let_Z (t_rottext)
Case " " : t_let_SPACE (t_rottext)
'chars lowers
Case "a" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_A (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "b" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_B (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "c" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_C (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "d" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_D (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "e" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_E (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "f" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_F (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "g" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_G (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "h" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_H (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "i" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_I (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "j" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_J (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "k" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_K (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "l" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_L (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "m" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_M (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "n" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_N (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "o" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_O (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "p" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_P (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "q" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_Q (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "r" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_R (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "s" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_S (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "t" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_T (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "u" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_U (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "v" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_V (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "w" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_W (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "x" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_X (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "y" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_Y (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
Case "z" : t_scale /= 2 : t_thickness = t_thickness / 2 : t_let_Z (t_rottext) : t_scale *= 2 : t_thickness = t_thickness * 2
'NUMBERS
Case "1" : t_num_1 (t_rottext)
Case "2" : t_num_2 (t_rottext)
Case "3" : t_num_3 (t_rottext)
Case "4" : t_num_4 (t_rottext)
Case "5" : t_num_5 (t_rottext)
Case "6" : t_num_6 (t_rottext)
Case "7" : t_num_7 (t_rottext)
Case "8" : t_num_8 (t_rottext)
Case "9" : t_num_9 (t_rottext)
Case "0" : t_num_0 (t_rottext)
'symbolS
Case "(" : t_sym_1 (t_rottext)
Case ")" : t_sym_2 (t_rottext)
Case "[" : t_sym_3 (t_rottext)
Case "]" : t_sym_4 (t_rottext)
Case "!" : t_sym_5 (t_rottext)
Case "¡" : t_sym_6 (t_rottext)
Case "?" : t_sym_7 (t_rottext)
Case "¿" : t_sym_8 (t_rottext)
Case "_" : t_sym_9 (t_rottext)
Case "-" : t_sym_10 (t_rottext)
Case "." : t_sym_11 (t_rottext)
Case ":" : t_sym_12 (t_rottext)
Case "+" : t_sym_13 (t_rottext)
Case "*" : t_sym_14 (t_rottext)
Case "/" : t_sym_15 (t_rottext)
Case "\" : t_sym_16 (t_rottext)
Case ">" : t_sym_17 (t_rottext)
Case "<" : t_sym_18 (t_rottext)
Case "=" : t_sym_19 (t_rottext)
Case "#" : t_sym_20 (t_rottext)
Case "," : t_sym_21 (t_rottext)
Case ";" : t_sym_22 (t_rottext)
Case "$" : t_sym_23 (t_rottext)
Case "%" : t_sym_24 (t_rottext)
Case Else
'Print " Missing character. "
'Sleep
End Select
Next N
T_PEN = 1
End Sub
'::::::::::::::::::::::::::::::::::::::::::::::::End T_text