LISCURVE.TRU plot_lissajous() as Art, utilizing multiple graphics windows

The updated LISCURVE.TRU file below also utilizes LISSFUNC.TRU but extends the graphics to multiple graphics windows; the BOX AREA defines the entire graphics window (same coordinates) so that BOX CLEAR can be used to erase the graphics display in preparation for the next set of artistic renderings.

This code generates a set of progressively complicated ribbons (interlaced multi-colored threads) based on varying Lissajous dimensions with nuanced phase angles.


! LISCURVE.TRU Lissajous Lab as Art
!
! Mark H. Harris
! Jan 20, 2019 v1.1
!
LIBRARY "lissfunc.tru"

SET MODE "color256"
LET pastel_yellow = 5
SET WINDOW -2.2, 2.2, -1.2, 1.2
SET COLOR pastel_yellow
FLOOD 0,0
SET BACK pastel_yellow
LET xlate_right = 1.07
LET xlate_left = - 1.07

BOX AREA -2.2, 2.2, -1.2, 1.2
CALL output_pause(-2.15, 1.12, "Resize Window#1 if desired, then press ESC to start.", "BLUE")

CALL plot_lissajous(390, 7, 5, 1.21, xlate_right, "BLUE", 1)
CALL plot_lissajous(390, 7, 5, 1.30, xlate_right, "GREEN", 1)
CALL plot_lissajous(290, 4, 5, 0.25, xlate_left, "MAGENTA", 1)
CALL plot_lissajous(290, 4, 5, 0.35, xlate_left, "RED", 1)

CALL output_pause(-2.15, -1.14, "Press ESC to advance to graphics Window#2.", "BLUE")

BOX CLEAR -2.2, 2.2, -1.2, 1.2
CALL output_pause(-2.15, 1.12, "Resize Window#2 if desired, then press ESC to start.", "BLUE")

CALL plot_lissajous(380, 6, 5, 1.20, xlate_right, "BLUE", 1)
CALL plot_lissajous(380, 6, 5, 1.29, xlate_right, "GREEN", 1)
CALL plot_lissajous(380, 6, 5, 1.27, xlate_right, "MAGENTA", 1)
CALL plot_lissajous(380, 6, 5, 1.22, xlate_right, "BLUE", 1)

CALL plot_lissajous(290, 4, 5, 0.25, xlate_left, "BLUE", 1)
CALL plot_lissajous(290, 4, 5, 0.37, xlate_left, "GREEN", 1)
CALL plot_lissajous(290, 4, 5, 0.35, xlate_left, "RED", 1)
CALL plot_lissajous(290, 4, 5, 0.27, xlate_left, "BLUE", 1)

CALL output_pause(-2.15, -1.14, "Press ESC to exit the graphics Window#2.", "BLUE")
END