DECLARE SUB PROYECTA (P!(), Q!())
DECLARE FUNCTION F! (X!, Y!)
DIM P1(3), Q1(3), P2(3), Q2(3)
XMIN = -5: XMAX = 5
YMIN = -5: YMAX = 5
ZMIN = -5: ZMAX = 5
NX = 50: NY = 50
SX = (XMAX - XMIN) / NX
SY = (YMAX - YMIN) / NY
P1(1) = XMAX: P1(2) = YMIN: P1(3) = 0: PROYECTA P1(), Q1()
XpMIN = Q1(1)
P1(1) = XMIN: P1(2) = YMAX: P1(3) = 0: PROYECTA P1(), Q1()
XpMAX = Q1(1)
P1(1) = XMIN: P1(2) = YMIN: P1(3) = ZMAX: PROYECTA P1(), Q1()
YpMAX = Q1(2)
P1(1) = XMAX: P1(2) = YMAX: P1(3) = ZMIN: PROYECTA P1(), Q1()
YpMIN = Q1(2)
XS = XpMAX - XpMIN
YS = YpMAX - YpMIN
XC = .5 * (XpMAX + XpMIN)
YC = .5 * (YpMAX + YpMIN)
IF (XS / 4 > YS / 3) THEN
SXMIN = XpMIN: SXMAX = XpMAX
SYMIN = YC - .5 * XS * 3 / 4
SYMAX = YC + .5 * XS * 3 / 4
ELSE
SXMIN = XC - .5 * YS * 4 / 3
SXMAX = XC + .5 * YS * 4 / 3
SYMIN = YpMIN: SYMAX = YpMAX
END IF
SCREEN 12: BORDER = 1
WINDOW (BORDER * SXMIN, BORDER * SYMAX)-(BORDER * SXMAX, BORDER * SYMIN)
P1(2) = YMIN
FOR I = 0 TO NX
P1(1) = XMIN
FOR J = 0 TO NY
P1(3) = F(P1(1), P1(2))
PROYECTA P1(), Q1()
IF (I <> NX) THEN
P2(1) = P1(1): P2(2) = P1(2) + SY: P2(3) = F(P2(1), P2(2))
PROYECTA P2(), Q2(): LINE (Q1(1), Q1(2))-(Q2(1), Q2(2))
END IF
IF (J <> NY) THEN
P2(1) = P1(1) + SX: P2(2) = P1(2): P2(3) = F(P2(1), P2(2))
PROYECTA P2(), Q2(): LINE (Q1(1), Q1(2))-(Q2(1), Q2(2))
END IF
P1(1) = P1(1) + SX
NEXT J
P1(2) = P1(2) + SY
NEXT I
FUNCTION F! (X!, Y!)
F = SIN((X * X + Y * Y) / 5)
END FUNCTION
SUB PROYECTA (P(), Q())
CONST C30 = .8660254037844387#
CONST S30 = .5#
Q(1) = (P(2) - P(1)) * C30
Q(2) = -(P(1) + P(2)) * S30 + P(3)
Q(3) = P(3)
END SUB
Índice
© 1996-99, euitmt WWW team
Última modificación: 9 de Julio de 1999 - 13:38:26