Графики функции с помощью компьютера строятся по точкам.
Допустим, чтобы построить график функции y= x^2 на промежутке от 0 до 4 берём
значения х с каким-либо небольшим шагом, например, 0.1, и для каждого х вычисляем
значения у. Получается такая таблица:
Показ дописів із міткою BASIC. Показати всі дописи
Показ дописів із міткою BASIC. Показати всі дописи
понеділок, 24 листопада 2014 р.
субота, 1 листопада 2014 р.
Работа с графикой
Работа с графикой в GWBASIC
Изображение на экране состоит из точек с целыми координатами.
Экранная система координат:
Графические команды:
SCREEN 9 – перевести экран в графический режим
CLS – очистить экране
PSET(X,Y) – нарисовать точку в координатах (Х,У)
Пример использования:
PSET(100,200) – нарисовать точку в координатах (100,200)

PSET(X,Y),C нарисовать точку цвета С в координатах (Х,У)
Пример использования:
PSET(100,200),2 – нарисовать зелёную точку в координатах (100,200)
Список цветов:
0 – чёрный
1 – синий
2 – зелёный
3 – сине-зелёный
4 – красный
5 – малиновый
6 – оранжевый
7 – светло-серый
8 – тёмно-серый
9 – сиреневый
10 – травяной
11 – голубой
12 – ярко-красный
13 – ярко-малиновый
14 – жёлтый
15 – белый
LINE(X1,Y1)-(X2,Y2) – провести линию из точки с координатами (Х1,У1) в точку с координатами (Х2,У2)
Пример использования:
LINE(100,200)-(250,300) - провести линию из точки с координатами (100,200) в точку с координатами (250,300)

LINE(X1,Y1)-(X2,Y2),C– провести линию цвета С из точки с координатами (Х1,У1) в точку с координатами (Х2,У2)
LINE(100,200)-(250,300),14 - провести жёлтую линию из точки с координатами (100,200) в точку с координатами (250,300)
LINE(X1,Y1)-(X2,Y2),C,B – нарисовать прямоугольник цвета С, диагональю которого будет линия (X1,Y1)-(X2,Y2)
Пример использования:
LINE(100,200)-(250,300),8,В – нарисовать тёмно-серый прямоугольник, диагональю которого будет линия (100,200)-(250,300)

LINE(X1,Y1)-(X2,Y2),C,BF – нарисовать и закрасить цветом С прямоугольник, диагональю которого будет линия (X1,Y1)-(X2,Y2)
Пример использования:
LINE(100,200)-(250,300),10,ВF – нарисовать и закрасить светло-зелёный прямоугольник, диагональю которого будет линия (100,200)-(250,300)

CIRCLE(X,Y),R – нарисовать окружность с центром в точке (Х1,У1) и радиусом R.
Пример использования:
CIRCLE(100,200),50 – нарисовать окружность с центром в точке (100,200) и радиусом 50.

CIRCLE(X,Y),R,C - нарисовать окружность цвета С с центром в точке (Х1,У1) и радиусом R.
CIRCLE(X,Y),R,C,A1,A2 – Нарисовать дугу от угла А1 до угла А2 окружности цвета С с центром в точке (Х1,У1) и радиусом R
Пример использования:
CIRCLE(100,200),50,4,0,1.507

CIRCLE(X,Y),R,C,A1,A2,D Нарисовать дугу эллипса со степенью сжатия D от угла А1 до угла А2 цвета С с центром в точке (Х1,У1) и радиусом большой полуоси R
Пример использования:
CIRCLE(100,200),50,4,0,3.14,10

Задание для работы у доски №1: Написать программу, которая нарисует на экране смайлик
1. Составим чертёж выводимого на экран изображения:

Рисунок будет состоять из трёх окружностей и одной полуокружности.
2. Определим координаты их центров и радиусы:

3. Пишем программу:
Переводим экран в графический режим:
10 SCREEN 9
Очищаем экран
20 CLS
Рисуем контур лица
30 CIRCLE (200,150),80
Рисуем левый глаз
40 CIRCLE (180,120),5
Рисуем правый глаз
50 CIRCLE(220,120),5
Рисуем улыбку
60 CIRCLE(200,150),60,15,3.5,5.9
4. Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задание для работы у доски №2: Написать программу, которая нарисует на экране ёлку
1. Составим чертёж выводимого на экран изображения:

2. Определим координаты точек, по которым будем строить линии.

3. Пишем программу:
Переводим экран в графический режим:
10 SCREEN 9
Очищаем экран
20 CLS
Рисуем верхний треугольник
30 LINE(260,70)-(310,120),2
40 LINE(310,120)-(210,120) ,2
50 LINE(210,120)-(260,70) ,2
Средний треугольник
60 LINE(260,120)-(330,190) ,2
70 LINE(330,190)-(190,190) ,2
80 LINE(190,190)-(260,120) ,2
Нижний треугольник
90 LINE(260,190)-(380,250) ,2
100 LINE(380,250)-(140,250) ,2
110 LINE(140,250)-(260,190) ,2
Прямоугольник ствола
120 LINE(250,250)-(270,300),8,B
4. Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задание для работы у доски №3: Написать программу, которая нарисует прямоугольники размером 15х300 всех возможных цветов.
Используем оператор цикла. Счётчик цикла I будет одновременно задавать цвет прямоугольника и его положение на экране
10 SCREEN 9
20 CLS
30 FOR I=0 TO 15
40 LINE(I*15,0)-(I*15+15,300),I
50 NEXT I
Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задания для самостоятельной работы:
Написать программу, которая выводила бы на экране одно из изображений. Задание выбирайте под номером 1+n%9, где n- ваш номер в журнале
Изображение на экране состоит из точек с целыми координатами.
Экранная система координат:
Графические команды:
SCREEN 9 – перевести экран в графический режим
CLS – очистить экране
PSET(X,Y) – нарисовать точку в координатах (Х,У)
Пример использования:
PSET(100,200) – нарисовать точку в координатах (100,200)
PSET(X,Y),C нарисовать точку цвета С в координатах (Х,У)
Пример использования:
PSET(100,200),2 – нарисовать зелёную точку в координатах (100,200)
Список цветов:
0 – чёрный
1 – синий
2 – зелёный
3 – сине-зелёный
4 – красный
5 – малиновый
6 – оранжевый
7 – светло-серый
8 – тёмно-серый
9 – сиреневый
10 – травяной
11 – голубой
12 – ярко-красный
13 – ярко-малиновый
14 – жёлтый
15 – белый
LINE(X1,Y1)-(X2,Y2) – провести линию из точки с координатами (Х1,У1) в точку с координатами (Х2,У2)
Пример использования:
LINE(100,200)-(250,300) - провести линию из точки с координатами (100,200) в точку с координатами (250,300)
LINE(X1,Y1)-(X2,Y2),C– провести линию цвета С из точки с координатами (Х1,У1) в точку с координатами (Х2,У2)
LINE(100,200)-(250,300),14 - провести жёлтую линию из точки с координатами (100,200) в точку с координатами (250,300)
LINE(X1,Y1)-(X2,Y2),C,B – нарисовать прямоугольник цвета С, диагональю которого будет линия (X1,Y1)-(X2,Y2)
Пример использования:
LINE(100,200)-(250,300),8,В – нарисовать тёмно-серый прямоугольник, диагональю которого будет линия (100,200)-(250,300)
LINE(X1,Y1)-(X2,Y2),C,BF – нарисовать и закрасить цветом С прямоугольник, диагональю которого будет линия (X1,Y1)-(X2,Y2)
Пример использования:
LINE(100,200)-(250,300),10,ВF – нарисовать и закрасить светло-зелёный прямоугольник, диагональю которого будет линия (100,200)-(250,300)
CIRCLE(X,Y),R – нарисовать окружность с центром в точке (Х1,У1) и радиусом R.
Пример использования:
CIRCLE(100,200),50 – нарисовать окружность с центром в точке (100,200) и радиусом 50.
CIRCLE(X,Y),R,C - нарисовать окружность цвета С с центром в точке (Х1,У1) и радиусом R.
CIRCLE(X,Y),R,C,A1,A2 – Нарисовать дугу от угла А1 до угла А2 окружности цвета С с центром в точке (Х1,У1) и радиусом R
Пример использования:
CIRCLE(100,200),50,4,0,1.507
CIRCLE(X,Y),R,C,A1,A2,D Нарисовать дугу эллипса со степенью сжатия D от угла А1 до угла А2 цвета С с центром в точке (Х1,У1) и радиусом большой полуоси R
Пример использования:
CIRCLE(100,200),50,4,0,3.14,10
Задание для работы у доски №1: Написать программу, которая нарисует на экране смайлик
1. Составим чертёж выводимого на экран изображения:
Рисунок будет состоять из трёх окружностей и одной полуокружности.
2. Определим координаты их центров и радиусы:
3. Пишем программу:
Переводим экран в графический режим:
10 SCREEN 9
Очищаем экран
20 CLS
Рисуем контур лица
30 CIRCLE (200,150),80
Рисуем левый глаз
40 CIRCLE (180,120),5
Рисуем правый глаз
50 CIRCLE(220,120),5
Рисуем улыбку
60 CIRCLE(200,150),60,15,3.5,5.9
4. Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задание для работы у доски №2: Написать программу, которая нарисует на экране ёлку
1. Составим чертёж выводимого на экран изображения:
2. Определим координаты точек, по которым будем строить линии.
3. Пишем программу:
Переводим экран в графический режим:
10 SCREEN 9
Очищаем экран
20 CLS
Рисуем верхний треугольник
30 LINE(260,70)-(310,120),2
40 LINE(310,120)-(210,120) ,2
50 LINE(210,120)-(260,70) ,2
Средний треугольник
60 LINE(260,120)-(330,190) ,2
70 LINE(330,190)-(190,190) ,2
80 LINE(190,190)-(260,120) ,2
Нижний треугольник
90 LINE(260,190)-(380,250) ,2
100 LINE(380,250)-(140,250) ,2
110 LINE(140,250)-(260,190) ,2
Прямоугольник ствола
120 LINE(250,250)-(270,300),8,B
4. Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задание для работы у доски №3: Написать программу, которая нарисует прямоугольники размером 15х300 всех возможных цветов.
Используем оператор цикла. Счётчик цикла I будет одновременно задавать цвет прямоугольника и его положение на экране
10 SCREEN 9
20 CLS
30 FOR I=0 TO 15
40 LINE(I*15,0)-(I*15+15,300),I
50 NEXT I
Запускаем программу (нажать F2, когда курсор находится на пустой строке)
Задания для самостоятельной работы:
Написать программу, которая выводила бы на экране одно из изображений. Задание выбирайте под номером 1+n%9, где n- ваш номер в журнале
неділя, 17 листопада 2013 р.
Программа для игры в Змейку на BASIC
Вот программа для игры в
Змейку (60 строк, это без появляющихся на поле препятствий)
Сначала задаём начальные
значения переменных:
Размеры поля и сторона клетки
в пикселях:
10 maxx = 30
20 maxy = 15
30 side = 20
Выделяем память для клеток
змейки
40 DIM zx(100)
50 DIM zy(100)
Начальная длина змейки
60 zl = 3
Задаём начальные координаты
клеткам змейки (напомню, головой считается клетка с самым большим номером).
70 zx(1) = 14
80 zx(2) = 15
90 zx(3) = 16
100 zy(1) = 7
110 zy(2) = 7
120 zy(3) = 7
Скорость змейки (едет вправо)
130 vx = 1
140 vy = 0
Координаты пищи
150 fx = 20
160 fy = 3
Выделяем память для
препятствий (в этой программе препятствий не будет, но если нам понадобится их
включить, уже будет заготовка)
170 DIM px(100)
180 DIM py(100)
190 pl = 0
Готовимся рисовать
200 SCREEN 9
210 CLS
Пробегаем по всем клеткам
змейки и рисуем квадраты на экране
220 FOR n = 1 TO zl
230 LINE ((zx(n) - 1) * side, (zy(n) - 1) * side)-(zx(n) * side, zy(n) *
side), 1, BF
240 NEXT n
Рисуем квадрат в клетке с
пищей
250 LINE ((fx - 1) * side, (fy - 1) * side)-(fx * side, fy * side), 2,
BF
Слушаем клавиатуру. Клавиши WASD – смена направления движения, Q –
выход
Обратите внимание, что
несколько команд можно поместить в одну строку, разделяя их двоеточиями.
260 a$ = INKEY$
270 IF a$ = "a" OR a$ = "A" THEN vx = -1: vy = 0
280 IF a$ = "d" OR a$ = "D" THEN vx = 1: vy = 0
290 IF a$ = "w" OR a$ = "W" THEN vx = 0: vy = -1
300 IF a$ = "s" OR a$ = "S" THEN vx = 0: vy = 1
301 IF a$ = "q" OR a$ = "Q" THEN GOTO 570
Следующие 2 строки содержат
пустой цикл. Они нужны, чтобы змейка не двигалась на экране современного
компьютера слишком быстро
302 FOR i = 1 TO 1000
303 NEXT i
Находим, в каких координатах
будет голова змейки после очередного шага
310 x1 = zx(zl) + vx
320 y1 = zy(zl) + vy
Если голова попадает на еду,
то увеличиваем длину змейки и переходим на строку 390
330 IF (x1 = fx) AND (y1 = fy) THEN zl = zl + 1: GOTO 390
Строки 340-380 будут
выполняться, если змейка ничего не съела. В этом случае мы должны стереть с
экрана хвостовой квадрат и сдвинуть все координаты квадратов змейки на место
предыдущих
340 LINE ((zx(1) - 1) * side, (zy(1) - 1) * side)-(zx(1) * side, zy(1) *
side), 0, BF
350 FOR k = 1 TO zl - 1
360 zx(k) = zx(k + 1)
370 zy(k) = zy(k + 1)
380 NEXT k
Теперь задаём новые
координаты для головы змейки и рисуем её в новых координатах.
390 zx(zl) = x1
400 zy(zl) = y1
410 LINE ((x1 - 1) * side, (y1 - 1) * side)-(x1 * side, y1 * side), 1,
BF
Проверяем условия поражения.
Сначала – столкновение со стенками экрана
420 IF x1 = 0 OR y1 = 0 OR x1 > maxx OR y1 > maxy THEN GOTO 570
Затем – столкновение со своим
туловищем
430 FOR k = 1 TO zl - 1
440 IF x1 = zx(k) AND y1 = zy(k) THEN GOTO 570
450 NEXT k
Если еда съедена, её нужно
передвинуть
460 IF (x1 = fx) AND (y1 = fy) THEN GOTO 470 ELSE GOTO 260
Берём случайную клетку на
поле
470 fx = 1 + INT(RND * maxx)
480 fy = 1 + INT(RND * maxy)
Проверяем, не занята ли уже
эта случайная клетка туловищем змейки. Если занята – берём другую случайную
клетку
490 FOR k = 1 TO zl
500 IF fx = zx(k) AND fy = zy(k) THEN GOTO 470
510 NEXT k
И рисуем еду в новом
положении
520 LINE ((fx - 1) * side, (fy - 1) * side)-(fx * side, fy * side), 2, BF
Основной цикл программы
завершается, возвращаемся к слушанию клавиатуры
560 GOTO 260
Сюда мы попадём в случае
проигрыша. Сообщим игроку его счёт (длину змейки)
570 PRINT "Game over. Your score: "; zl
Вот и всё, игра готова.
Подумайте самостоятельно:
1)
Как сделать так,
чтобы клетки ан поле были мельче?
2)
Как рисовать пищу
не квадратом, а кругом?
3)
Как сделать так,
чтобы змея могла двигаться ещё и по диагонали?
4)
Как запретить
змее менять своё направление движения на строго противоположное?
5)
Как сделать так,
чтобы со временем змея двигалась быстрее?
6) Как сделать так, чтобы после заврешения игры человека спрашивали, хочет ли он сыграть заново?
7)
И, если ответите
на это, будете вообще молодцы: - в каких местах программы и какие правки нужно
сделать, чтобы в игре появились препятствия?
середа, 6 листопада 2013 р.
Рубеж по информационным технологиям
Работа состоит из 4 заданий.
I Перевести
число из десятичной системы в двоичную (7 вариантов)
1) 82; 2) 42; 3) 199; 4) 51; 6) 97; 7) 37
II Перевести
число из двоичной системы в десятичную (8 вариантов)
1) 110110; 2) 101110; 3) 100110110; 4) 11010101; 6) 1001011;
7) 1100110; 8) 10010101
III Нарисовать
фигуру (6 вариантов)
IV Нарисовать
узор (с использованием циклов) (9 вариантов)
Как выбрать свой вариант?
|
Ваш
номер в журнале
|
Задание
I
|
Задание
II
|
Задание
III
|
Задание
IV
|
|
1
|
1
|
1
|
1
|
1
|
|
2
|
2
|
2
|
2
|
2
|
|
3
|
3
|
3
|
3
|
3
|
|
4
|
4
|
4
|
4
|
4
|
|
5
|
5
|
5
|
5
|
5
|
|
6
|
6
|
6
|
6
|
6
|
|
7
|
7
|
7
|
1
|
7
|
|
8
|
1
|
8
|
2
|
8
|
|
9
|
2
|
1
|
3
|
9
|
|
10
|
3
|
2
|
4
|
1
|
|
11
|
4
|
3
|
5
|
2
|
|
12
|
5
|
4
|
6
|
3
|
|
13
|
6
|
5
|
1
|
4
|
|
14
|
7
|
6
|
2
|
5
|
|
15
|
1
|
7
|
3
|
6
|
|
16
|
2
|
8
|
4
|
7
|
|
17
|
3
|
1
|
5
|
8
|
|
18
|
4
|
2
|
6
|
9
|
|
19
|
5
|
3
|
1
|
1
|
|
20
|
6
|
4
|
2
|
2
|
|
21
|
7
|
5
|
3
|
3
|
|
22
|
1
|
6
|
4
|
4
|
|
23
|
2
|
7
|
5
|
5
|
|
24
|
3
|
8
|
6
|
6
|
|
25
|
4
|
1
|
1
|
7
|
|
26
|
5
|
2
|
2
|
8
|
|
27
|
6
|
3
|
3
|
9
|
|
28
|
7
|
4
|
4
|
1
|
Підписатися на:
Дописи (Atom)
