СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до 21.05.2025

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

QBasic: Графические задачи 2

Категория: Информатика

Нажмите, чтобы узнать подробности

Графические задания с полным листингом программ к каждой.

Просмотр содержимого документа
«QBasic: Графические задачи 2»

  1. Система координат

CLS

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



  1. Рисунок: Солнце, радуга и дождик

CLS

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



  1. Случайные числа для построения графических объектов

SCREEN 9

PRINT "vvedite chislo"

INPUT 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:

REM снежинки

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


  1. Схематичная модель солнечной системы (статичная) со случайным выбором параметров

SCREEN 9

CLS

WINDOW (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




  1. Построении секторов

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











  1. Построение треугольника

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)

  1. Построить горизонтальные отрезки случайной длины каждый (длина в интервале от 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



  1. Создание модели механических часов

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



  1. Движение шарика с отражением от стены

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



  1. Рисование вазы эллипсами

SCREEN 9

COLOR 12, 14

r1 = 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


  1. Движение по окружности

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



  1. Имитация движения

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


  1. Поток из центра

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




Скачать

Рекомендуем курсы ПК и ППК для учителей

Вебинар для учителей

Свидетельство об участии БЕСПЛАТНО!