Система координат
C
LS
SCREEN 9
WINDOW (-100, -100)-(100, 100)
REM Оси координат
LINE (0, -100)-(0, 100)
LINE (-100, 0)-(100, 0)
REM Штриховка
FOR i = -100 TO 100 STEP 10
LINE (-1, i)-(1, i)
LINE (i, -1)-(i, 1)
NEXT i
REM Градуировка оси ОХ
o = -90
FOR d = 3 TO 75 STEP 4
LOCATE 14, d
PRINT o
o = o + 10
NEXT d
Рисунок: Солнце, радуга и дождик
C
LS
SCREEN 9
WINDOW (0, 0)-(300, 300)
RANDOMIZE TIMER
pi = 3.1415
REM Радуга
r = 160
FOR c = 1 TO 8
CIRCLE (50, 30), r, c
PAINT (50, 30), c
r = r - 10
NEXT c
CIRCLE (50, 30), r, 0
PAINT (50, 30), 0
REM Солнце с лучами
CIRCLE (250, 250), 15, 14
PAINT (250, 250), 14
r = 200
FOR i = 1 TO 800
u = u + pi / 24
x = r * COS(u) + 250
y = r * SIN(u) + 250
LINE (250, 250)-(x, y), 14
NEXT i
REM Косой дождик
FOR j = 1 TO 800
x1 = RND * 300
y1 = RND * 300
LINE (x1, y1)-(x1 + 2, y1 + 2), 9
NEXT j
Случайные числа для построения графических объектов
SCREEN 9
PRINT "vvedite chislo"
I
NPUT n
SELECT CASE n
CASE 1:
REM линии
CLS
COLOR 12, 0
FOR i = 1 TO 510
x1 = 670 * RND(1)
x2 = x1 + 10
y1 = 410 * RND(1)
y2 = y1 + 10
c = RND(1) * 15
LINE (x1, y1)-(x2, y2), c
NEXT i
CASE 2:
REM точки
CLS
FOR i = 1 TO 510
x1 = 670 * RND(1)
y1 = 410 * RND(1)
c = RND(1) * 15
PSET (x1, y1), c
NEXT i
CASE 3:
REM окружности
CLS
COLOR 12, 11
FOR i = 1 TO 510
x1 = 670 * RND(1)
y1 = 410 * RND(1)
c = RND(0) * 15
r = RND(1) * 25
CIRCLE (x1, y1), r, c
PAINT (x1, y1), c
NEXT i
CASE 4:
R
EM снежинки
CLS
COLOR 12, 8
FOR i = 1 TO 510
x1 = 670 * RND(1)
y1 = 410 * RND(1)
x2 = x1
y2 = y1 + 10
x3 = x1 - 5
y3 = y1 + 5
x4 = x1 + 5
y4 = y1 + 5
x5 = x1 - 2.5
y5 = y1 + 2.5
x6 = x1 + 2.5
y6 = y1 + 7.5
x7 = x1 + 2.5
y7 = y1 + 2.5
x8 = x1 - 2.5
y8 = y1 + 7.5
c = RND(1) * 15
LINE (x1, y1)-(x2, y2), c
LINE (x3, y3)-(x4, y4), c
LINE (x5, y5)-(x6, y6), c
LINE (x7, y7)-(x8, y8), c
NEXT i
END SELECT
Схематичная модель солнечной системы (статичная) со случайным выбором параметров
SCREEN 9
CLS
W
INDOW (0, 0)-(200, 150)
RANDOMIZE TIMER
pi = 3.1415
REM Центральная звезда (солнце)
CIRCLE (100, 75), 5, 14
PAINT (100, 75), 14
REM Рисование планет с орбитами
FOR i = 1 TO 9
v = v + pi / 4
r = 65 * RND + 10
r1 = 5 * RND + 1
x = r * COS(v) + 100
y = r * SIN(v) + 75
CIRCLE (x, y), r1, c
PAINT (x, y), c
CIRCLE (100, 75), r, c
c = RND * 13 + 1
NEXT i
П
остроении секторов
SCREEN 9
CLS
WINDOW (0, 0)-(300, 200)
CIRCLE (150, 100), 50, 5, -.5, -1
PAINT (155, 105), 5
CIRCLE (150, 100), 50, 2, -1, -5
PAINT (145, 105), 2
CIRCLE (150, 100), 50, 14, -5, -.1
PAINT (155, 95), 14
Построение треугольника
SCREEN 9
WINDOW (-100, -150)-(300, 150)
RANDOMIZE TIMER
x1 = 0
x2 = 100
y1 = 0
y2 = 0
r1 = INT(RND * 100) + 1
r2 = INT(RND * 100) + 1
PRINT " A="; x2
PRINT " B="; r1
PRINT " C="; r2
LINE (x1, y1)-(x2, y2)
LOCATE 14, 30
PRINT "c"
FOR i = 1 TO 100 STEP .1
x3 = r1 * COS(u1) + x1
y3 = r1 * SIN(u1) + y1
o1 = INT(x3)
o3 = INT(y3)
PSET (x3, y3), 14
FOR j = 1 TO 800 STEP .5
x4 = r2 * COS(u2) + x2
y4 = r2 * SIN(u2) + y2
o2 = INT(x4)
o4 = INT(y4)
PSET (x4, y4), 10
u2 = u2 + 1 / r2
IF o1 = o2 AND o3 = o4 THEN a = o1: b = o3
NEXT j
u1 = u1 + 1 / r1
NEXT i
IF b
LINE (x1, y1)-(a, b)
LINE (x2, y2)-(a, b)
Построить горизонтальные отрезки случайной длины каждый (длина в интервале от 20 до 70). Координаты начала следующего отрезка совпадают с координатами конца предыдущего.

SCREEN 9
WINDOW (-20, -150)-(280, 150)
RANDOMIZE TIMER
REM Координаты начала первого отрезка
x = 0
y = 0
REM Нахождение и вывод на экран длины каждого отрезка
l1 = INT(RND * 50) + 20 : PRINT " l1="; l1
l2 = INT(RND * 50) + 20 : PRINT " l2="; l2
l3 = INT(RND * 50) + 20 : PRINT " l3="; l3
l4 = INT(RND * 50) + 20 : PRINT " l4="; l4
l5 = INT(RND * 50) + 20 : PRINT " l5="; l5
REM Определение координат для каждого отрезка
x1 = x + l1
x2 = x + l1 + l2
x3 = x + l1 + l2 + l3
x4 = x + l1 + l2 + l3 + l4
x5 = x + l1 + l2 + l3 + l4 + l5
REM Рисование отрезков
LINE (x, y)-(x1, y), 10
LINE (x1, y)-(x2, y), 4
LINE (x2, y)-(x3, y), 14
LINE (x3, y)-(x4, y), 1
LINE (x4, y)-(x5, y), 3
С
оздание модели механических часов
SCREEN 9
CLS
WINDOW (0, 0)-(200, 150)
REM Рисование и оформление циферблата
CIRCLE (100, 75), 70, 10
pi = 3.1415
LOCATE 3, 40
PRINT "12"
LOCATE 23, 41
PRINT "6"
LOCATE 13, 65
PRINT "3"
LOCATE 13, 16
PRINT "9"
LOCATE 6, 38
PRINT "POLET"
REM Штриховка (часы)
FOR u3 = -pi / 2 TO 45 * pi / 30 STEP pi / 30
X3 = 70 * SIN(u3) + 100
Y3 = 70 * COS(u3) + 75
X4 = 67 * SIN(u3) + 100
Y4 = 67 * COS(u3) + 75
LINE (X3, Y3)-(X4, Y4), 10
NEXT u3
REM Штриховка (минуты)
FOR u3 = -pi / 2 TO 9 * pi / 6 STEP pi / 6
X3 = 70 * SIN(u3) + 100
Y3 = 70 * COS(u3) + 75
X4 = 64 * SIN(u3) + 100
Y4 = 64 * COS(u3) + 75
LINE (X3, Y3)-(X4, Y4), 10
NEXT u3
REM Моделирование движения
FOR u2 = -pi / 2 TO 8 * pi / 6 STEP pi / 6
FOR u1 = -pi / 2 TO 44 * pi / 30 STEP pi / 30
FOR u = -pi / 2 TO 44 * pi / 30 STEP pi / 30
CIRCLE (100, 75), 3, 10
REM Секундная стрелка
LINE (100, 75)-(x, y), 0
x = 55 * SIN(u) + 100
y = 55 * COS(u) + 75
LINE (100, 75)-(x, y), 10
REM Минутная стрелка
LINE (100, 75)-(x1, y1), 0
CIRCLE (x1, y1), 2, 0
x1 = 40 * SIN(u1) + 100
y1 = 40 * COS(u1) + 75
LINE (100, 75)-(x1, y1), 13
CIRCLE (x1, y1), 2, 13
NEXT u3
REM Часовая стрелка
LINE (100, 75)-(x2, y2), 0
CIRCLE (x2, y2), 2, 0
x2 = 20 * SIN(u2) + 100
y2 = 20 * COS(u2) + 75
LINE (100, 75)-(x2, y2), 14
CIRCLE (x2, y2), 2, 14
REM Задержка
FOR z = 1 TO 4100000
NEXT z
NEXT u
NEXT u1
NEXT u2
Движение шарика с отражением от стены
CLS
SCREEN 9
WINDOW (0, 0)-(200, 180)
REM Шаг движения
a = .5
b = .5
REM Начальные координаты объекта, объект
x = 10
y = 10
CIRCLE (x, y), 3, 11
PAINT (x, y), 11
REM Моделирование движения
FOR i = 1 TO 800
CIRCLE (x, y), 3, 0
PAINT (x, y), 0
x = x + a
y = y + b
CIRCLE (x, y), 3, 11
PAINT (x, y), 11
REM Изменение траектории
IF y 176 THEN b = -b
IF x 196 THEN a = -a
REM Задержка
FOR z = 1 TO 100000
NEXT z
NEXT i
Рисование вазы эллипсами
SCREEN 9
COLOR 12, 14
r
1 = 20
FOR i = 260 TO 200 STEP -2
CIRCLE (200, i), r1, c, , , .2
PAINT (200, i), c
c = RND(1) * 15
r1 = r1 + 1
NEXT i
r = 10
FOR y = 100 TO 50 STEP -2
CIRCLE (200, y), r, c, , , .2
PAINT (200, y), c
c = RND(1) * 15
r = r + 1
NEXT y
FOR i = 120 TO 100 STEP -2
CIRCLE (200, i), 10, c, , , .2
PAINT (200, i), c
c = RND(1) * 15
NEXT i
r1 = 50
FOR i = 200 TO 120 STEP -2
CIRCLE (200, i), r1, c, , , .2
PAINT (200, i), c
c = RND(1) * 15
r1 = r1 - 1
NEXT i
Движение по окружности
SCREEN 9
CLS
WINDOW (0, 0)-(200, 150)
RANDOMIZE TIMER
pi = 3.1415
CIRCLE (100, 75), 5, 14
PAINT (100, 75), 14
FOR i = 1 TO 800
CIRCLE (x, y), 3, 0
PAINT (x, y), 0
CIRCLE (x1, y1), 5, 0
PAINT (x1, y1), 0
CIRCLE (x2, y2), 10, 0
PAINT (x2, y2), 0
v = v + pi / 48
v1 = v1 + pi / 36
v2 = v2 + pi / 96
r = 40
r1 = 20
r2 = 60
x = r * SIN(v) + 100
y = r * COS(v) + 75
x1 = r1 * COS(v1) + 100
y1 = r1 * SIN(v1) + 75
x2 = r2 * COS(v2) + 100
y2 = r2 * SIN(v2) + 75
CIRCLE (x, y), 3, 10
PAINT (x, y), 10
CIRCLE (x1, y1), 5, 13
PAINT (x1, y1), 13
CIRCLE (x2, y2), 10, 4
PAINT (x2, y2), 4
REM Задержка
FOR z = 1 TO 100000
NEXT z
NEXT i
Имитация движения
CLS
SCREEN 9
COLOR 13, 0
RANDOMIZE TIMER
WINDOW (0, 0)-(200, 150)
pi = 3.1415
'LINE (95, 80)-(110, 70), 14, BF
DIM x(250), y(250), v(250), u(250), x1(250), y1(250), v1(250), u1(250)
FOR j = 1 TO 1500
FOR i = 1 TO 250
PSET (x1(i), y1(i)), 0
'PSET(x(i), y(i)), 0
'LINE (95, 80)-(110, 70), 14, BF
CIRCLE (105, 75), 10, 14, , , .3
LINE (x(i), y(i))-(x(i) + 1, y(i)), 0
IF x1(i) 0 AND x1(i) 0 AND y1(i)
x(i) = x(i) + v(i)
y(i) = y(i) + u(i)
x1(i) = x1(i) + v1(i)
y1(i) = y1(i) + u1(i)
PSET (x1(i), y1(i)), 10
' PSET (x(i), y(i)), 15
LINE (x(i), y(i))-(x(i) + 1, y(i)), 15
' LINE (95, 80)-(110, 70), 14, BF
CIRCLE (105, 75), 10, 14, , , .3
ELSE
x(i) = 200
y(i) = 75
v(i) = -1 - 12 * RND(1)
u(i) = -1 + 2 * RND(1)
x(i) = x(i) + v(i)
y(i) = y(i) + u(i) * 500
x1(i) = 100
y1(i) = 75
v1(i) = -1 - 10 * RND(1)
u1(i) = -1 + 2 * RND(1)
x1(i) = x1(i) + v1(i)
y1(i) = y1(i) + u1(i) * .5
PSET (x1(i), y1(i)), 10
'PSET (x(i), y(i)), 15
LINE (x(i), y(i))-(x(i) + 1, y(i)), 15
'LINE (95, 80)-(110, 70), 14, BF
CIRCLE (105, 75), 10, 14, , , .3
END IF
FOR z = 1 TO 100
NEXT z
NEXT i
NEXT j
Поток из центра
CLS
SCREEN 9
COLOR 13, 0
RANDOMIZE TIMER
WINDOW (0, 0)-(200, 150)
'PAINT (1, 1), 15
DIM x(25), y(25), v(25), u(25)
FOR o = 1 TO 1500
FOR i = 1 TO 25
PSET (x(i), y(i)), 0
IF x(i) 0 AND x(i) 0 AND y(i)
THEN
x(i) = x(i) + v(i)
y(i) = y(i) + u(i)
PSET (x(i), y(i)), 10
ELSE
x(i) = 100
y(i) = 75
v(i) = -1 + 2 * RND(1)
u(i) = -1 + 2 * RND(1)
x(i) = x(i) + v(i)
y(i) = y(i) + u(i)
PSET (x(i), y(i)), 10
END IF
FOR z = 1 TO 1000
NEXT z
NEXT i
NEXT o
10