sunstone.bmp
 Ing. Alejandro A. Hassey (C) 2000-2008 
'Ing. Alejandro A. Hassey (C) 1999    : AZTECA8.EAS 
'Galeana 201 
'Ciudad Mendoza Veracruz  C.P. 94740  (272) 17229 
escape$ = CHR$(27)
KcUENTA = -1
GOSUB RUMBO:
pban = 1
GOSUB LlPara
END
RUMBO:
FASE = 0: fffaaa = 0
PI = 3.1415926#: pis = PI / 180
FASE = PI / 2
'fffaaa = pi / 2 
cx = 0: cy = 0
RX = 3 + 1
CB = 15: co = 0
CB = 7: co = 15: C77 = c7: C77 = 7

c3 = 3: c7 = 7: c7x = 7: C77 = 0
E = .8:
Pfase = PI
'ki = -70: ci = 30 
SCREEN 9, 1
WINDOW ((-320 - ki) / E, (240 - ci) / E)-((320 - ki) / E, (-240 - ci) / E)
PAINT (0, 0), 15, 15

GOSUB circulos


CIRCLE (0, 0), 2, 4
PAINT (0, 0), 4, 4
DIF = 3 + 1 + 4 + 2
CIRCLE (270 - DIF, 150), 12, 0
PAINT (270 - DIF, 150), 10, 0
CIRCLE (270, 125), 12, 0
PAINT (270, 125), 4, 0

CIRCLE (270 - DIF, -150), 12, 0
PAINT (270 - DIF, -150), 0, 0
CIRCLE (270, -125), 12, 0
PAINT (270, -125), 0, 0



feo = 2
REM ***   DEFINE RADIO CIRCUNFERENCIAS PARA TIPOGRAFIA CIRCULAR
r(1) = 270
r(2) = 230
r(3) = 70

KN3(1) = 3
KN3(2) = 6
KN3(3) = 6
KN3(4) = 3
KN3(5) = 6
C77(1) = 1
C77(2) = 0
C77(3) = 10

FOR JJJ = 1 TO 2

GOSUB graduacion
NEXT JJJ
GOSUB LlPara
BEEP
GOSUB LlPara
RETURN

graduacion:
'''CIRCLE (0, 0), 244, 13 
CIRCLE (0, 0), .94 * 270, 0
REM ***  DEFASAMIENTO ARRANQUE ESCALA
Pfase = PI / 2

FOR ANGULO = 0 TO 359 STEP 1

X1 = .93 * r(JJJ) * COS(-ANGULO * pis + Pfase)
Y1 = .93 * r(JJJ) * SIN(-ANGULO * pis + Pfase)


X2 = .94 * r(JJJ) * COS(-ANGULO * pis + Pfase)
Y2 = .94 * r(JJJ) * SIN(-ANGULO * pis + Pfase)
LINE (X1, Y1)-(X2, Y2), 4
NEXT ANGULO
MMM = MMM + 1
C77 = C77(MMM)
FOR ANGULO = 0 TO 359 STEP KN3(MMM)

X1 = .9 * r(JJJ) * COS(-ANGULO * pis + Pfase)
Y1 = .9 * r(JJJ) * SIN(-ANGULO * pis + Pfase)
x33 = .94 * r(JJJ) * COS(-ANGULO * pis + FASE)
y33 = .94 * r(JJJ) * SIN(-ANGULO * pis + FASE)


X2 = .94 * r(JJJ) * COS(-ANGULO * pis + Pfase)
Y2 = .94 * r(JJJ) * SIN(-ANGULO * pis + Pfase)
x22 = .99 * r(JJJ) * COS(-ANGULO * pis + FASE)
y22 = .99 * r(JJJ) * SIN(-ANGULO * pis + FASE)



x3 = .97 * r(JJJ) * COS(-ANGULO * pis + Pfase)
y3 = .97 * r(JJJ) * SIN(-ANGULO * pis + Pfase)



LINE (X1, Y1)-(X2, Y2), CB
IF CUENTA MOD 5 = 0 THEN DA = -2.9: KcUENTA = KcUENTA + 1: GOSUB Pintanumero

'IF cuenta MOD 10 = 0 THEN GOTO 555 
IF CUENTA MOD 5 = 0 THEN CIRCLE (X1, Y1), 2, 0: PAINT (X1, Y1), 10, 0: REM LINE (x1, y1)-(x2, y2), 10:
555 :

IF ANGULO = 0 THEN CUENTA = 0: KcUENTA = 0

CUENTA = CUENTA + 1


DA = 0
NEXT ANGULO
RETURN

Pintanumero:

rr$ = MID$(STR$(KcUENTA), 2, 3)
IF KcUENTA = 24 THEN rr$ = "12"
LL = LEN(rr$)

FOR ii = 1 TO LL
xa$ = MID$(rr$, ii, 1)
A$ = xa$
REM DEFINE  ARRANQUE NUMEROLOGIA
FASE = -PI
IF BANDERA = -1 THEN GOTO SALTABANDERA
cx = (r(JJJ) - 30 - 10) * COS((-ANGULO - DA - 1.5) * pis + FASE - PI / 2)
cy = (r(JJJ) - 30 - 10) * SIN((-ANGULO - DA - 1.5) * pis + FASE - PI / 2)

SALTABANDERA:

x01R = -RX: y01r = RX
x11R = RX: y11r = RX
x02R = -RX: y02r = 0
x22R = RX: y22r = 0
x03R = -RX: y03r = -RX
x33R = RX: y33r = -RX
x04R = RX: y04r = RX
x44R = RX: y44r = 0
x05R = RX: y05r = 0
x55R = RX: y55r = -RX
x06R = -RX: y06r = -RX
x66R = -RX: y66r = 0
x07R = -RX: y07r = 0
x77R = -RX: y77r = RX

'A = angulo * PIS - PI / 2 - 2! * DA * PI / 360 - FASE + FASE + fffaaa 
A = ANGULO * pis - PI / 2 - 2! * DA * PI / 360 + PI / 2

A = -A
x01 = x01R * COS(A) - y01r * SIN(A) + cx
y01 = x01R * SIN(A) + y01r * COS(A) + cy
x11 = x11R * COS(A) - y11r * SIN(A) + cx
y11 = x11R * SIN(A) + y11r * COS(A) + cy

x02 = x02R * COS(A) - y02r * SIN(A) + cx
y02 = x02R * SIN(A) + y02r * COS(A) + cy
x22 = x22R * COS(A) - y22r * SIN(A) + cx
y22 = x22R * SIN(A) + y22r * COS(A) + cy

x03 = x03R * COS(A) - y03r * SIN(A) + cx
y03 = x03R * SIN(A) + y03r * COS(A) + cy
x33 = x33R * COS(A) - y33r * SIN(A) + cx
y33 = x33R * SIN(A) + y33r * COS(A) + cy

x04 = x04R * COS(A) - y04r * SIN(A) + cx
y04 = x04R * SIN(A) + y04r * COS(A) + cy
x44 = x44R * COS(A) - y44r * SIN(A) + cx
y44 = x44R * SIN(A) + y44r * COS(A) + cy

x05 = x05R * COS(A) - y05r * SIN(A) + cx
y05 = x05R * SIN(A) + y05r * COS(A) + cy
x55 = x55R * COS(A) - y55r * SIN(A) + cx
y55 = x55R * SIN(A) + y55r * COS(A) + cy

x06 = x06R * COS(A) - y06r * SIN(A) + cx
y06 = x06R * SIN(A) + y06r * COS(A) + cy
x66 = x66R * COS(A) - y66r * SIN(A) + cx
y66 = x66R * SIN(A) + y66r * COS(A) + cy

x07 = x07R * COS(A) - y07r * SIN(A) + cx
y07 = x07R * SIN(A) + y07r * COS(A) + cy
x77 = x77R * COS(A) - y77r * SIN(A) + cx
y77 = x77R * SIN(A) + y77r * COS(A) + cy

L = LEN(A$)
FOR yI = 1 TO L
x$ = MID$(A$, yI, 1)
NUMERO$ = x$
GOSUB NUMERO
FOR yJ = 1 TO 7

DIBUJANUMERO$ = MID$(XX$, yJ, 1)
GOSUB LlPara
GOSUB segmento
NEXT yJ
dx = dx + 3 * RX
NEXT yI
cx = cx + dddxxx
dx = 0
DA = DA + 5 - 1 - 1
IF BANDERA = -1 THEN DA = 0
NEXT ii
RETURN: REM FIN PintaNumero

END
LlPara:
LL1:
kk$ = INKEY$
IF kk$ = escape$ THEN CLEAR : END
IF kk$ = "`" THEN CLEAR : END
IF kk$ = "X" THEN CLEAR : END
IF kk$ = "x" THEN CLEAR : END
IF kk$ = "P" THEN Pflag = Pflag + 1: pban = (-1) ^ Pflag
IF kk$ = "p" THEN Pflag = Pflag + 1: pban = (-1) ^ Pflag
IF pban < 0 THEN RETURN
IF kk$ = "" THEN GOTO LL1
LL2:
RETURN
NUMERO:

SELECT CASE NUMERO$
CASE "."
segmento$ = "."
CASE "0"
segmento$ = "0134567"
CASE "1"
segmento$ = "0000045"
CASE "2"
segmento$ = "0012346"
CASE "3"
segmento$ = "0012345"
CASE "4"
segmento$ = "0002457"
CASE "5"
segmento$ = "0012357"
CASE "6"
segmento$ = "0123765"
CASE "7"
segmento$ = "0000145"
CASE "8"
segmento$ = "1234567"
CASE "9"
segmento$ = "0123457"
END SELECT
XX$ = segmento$
RETURN
segmento:
SELECT CASE DIBUJANUMERO$
CASE "."
CIRCLE (x01 - RX / 2, y01 - RX / 2), RX / 2, 15
PAINT (x01 - RX / 2, y01 - RX / 2), 15, 15

CASE "0"
CASE "1"
LINE (x01 + dx, y01)-(x11 + dx, y11), C77
CASE "2"
LINE (x02 + dx, y02)-(x22 + dx, y22), C77
CASE "3"
LINE (x03 + dx, y03)-(x33 + dx, y33), C77
CASE "4"
LINE (x04 + dx, y04)-(x44 + dx, y44), C77
CASE "5"
LINE (x05 + dx, y05)-(x55 + dx, y55), C77
LINE (x05 + 1 + dx, y05)-(x55 + 1 + dx, y55), C77
LINE (x05 + 2 + dx, y05)-(x55 + 2 + dx, y55), C77
LINE (x05 - 1 + dx, y05)-(x55 - 1 + dx, y55), C77

CASE "6"
LINE (x06 + dx, y06)-(x66 + dx, y66), C77
CASE "7"
LINE (x07 + dx, y07)-(x77 + dx, y77), C77
END SELECT
RETURN
RETURN
circulos:
CCX(1) = 120: CCY(1) = 0
CCX(2) = -120: CCY(2) = 0
CCX(3) = 0: CCY(3) = -120

FOR DATOS = 1 TO 3
CIRCLE (CCX(DATOS), CCY(DATOS)), 50, 0
CIRCLE (CCX(DATOS), CCY(DATOS)), 40, 0
CIRCLE (CCX(DATOS), CCY(DATOS)), 2, 0
PAINT (CCX(DATOS), CCY(DATOS)), 0, 0

FOR I = 0 TO 330 STEP 30
AR = I * pis
RX2 = 50 * COS(AR): RY2 = 50 * SIN(AR)
'''CIRCLE ((CCX(DATOS) + RX2), (CCY(DATOS) + RY2)), 2, 0 
'''PAINT ((CCX(DATOS) + RX2), (CCY(DATOS) + RY2)), 10, 0 



RX1 = 40 * COS(AR): RY1 = 40 * SIN(AR)
'''CIRCLE ((CCX(DATOS) + RX1), (CCY(DATOS) + RY1)), 2, 0 
'''PAINT ((CCX(DATOS) + RX1), (CCY(DATOS) + RY1)), 10, 0 

LINE (CCX(DATOS) + RX1, CCY(DATOS) + RY1)-(CCX(DATOS) + RX2, CCY(DATOS) + RY2), 0
NEXT I
NEXT DATOS
'**** aLTURA nUMEROS 
RX = 3 + 1
RETURN