Работа с графикой
Программные средства языка Бейсик позволяют работать не только с текстовой, но и с графической информацией. Это обеспечивается языком графики, псевдографическими символами, набором операторов и функций. Работа с графической информацией требует графических дисплеев. Цветные графические дисплеи позволяют полностью реализовать все программные графические возможности, заложенные в языке Бейсик. Операторы и функции, используемые при работе с графикой
Элементарным изобразительным средством графического экрана является черно-белая или цветная точка разной степени свечения. Местоположение всех точек на экране образуют прямоугольную систему координат из горизонтальных строк (х) и вертикальных колонок (у). Количество точек, которое может быть размещено на экране, зависит от разрешающей способности (средней или высокой). При средней разрешающей способности горизонтальная строка содержит 320 точек, вертикальная - 200 точек. При высокой разрешающей способности горизонтальная строка содержит 640 точек, вертикальная - 200. Разрешающая способность устанавливается оператором SCREEN. Оператор SCREEN устанавливает режим и параметры работы дисплея, Формат записи оператораSCREEN: SCREEN [,[цветное- изображение], [активная-страница] [, отображаемая-страница]] Ниже приведены примеры записи оператораSCREEN SCREEN 1,1 средняя разрешающая способность; ширина текстовой строки 40 колонок: SCREEN 2 средняя разрешающая способность; ширина текстовой строки 80 колонок. Чтобы перейти от графического режима к текстовому, следует выбрать оператор: SCREEN 0,0,0 Отметим, что перед этим оператором может потребоваться еще один дополнительный оператор SCREEN 2, если в текстовом режиме была установлена ширина строки 80. Можно переход к текстовому режиму выполнить с клавиатуры, нажав функциональную клавишу F10. Палитры цветов для переднего плана
После оператораSCREEN используется операторCOLOR, который позволяет выбрать фон и палитру цветов для переднего плана. Имеются две палитры цветов: 0 и 1. Каждая палитра содержит три цвета. Формат записи оператора COLOR: COLOR [фон][,палитра- цветов- переднего- плана] Для цветного изображения фон выбирается из таблицы (значение от 0 до 15). Следует заметить, что фон всегда совпадает с окаймлением в графическом режиме. Цвета, используемые при цветном графическом и текстовом режимах
Получение простейших геометрических фигур С помощью графических операторов можно получить следующие изображения: точки - операторы RSET и PRESET; отрезка прямой - оператор LINE; окружности - операторCIRCLE. Синтаксис этих графических операторов и примеры приведены в Справке Бейсика. Пример. Графически построить изображение циферблата часов с передвижением стрелок, соответствующих текущему времени. DECLARE FUNCTION SEC! (T!) CLS SCREEN 7 KI = SEC(0) PI = 3.1415 WINDOW (-10, -10)-(10, 10) PSET (0, 0), 15 FOR I = 0 TO 360 STEP 6 PSET (0, 0) DRAW "TA=" + VARPTR$(I) + " BD75D5" NEXT FOR I = 0 TO 360 STEP 30 PSET (0, 0) DRAW "TA=" + VARPTR$(I) + "BD70C2D10" NEXT FOR I = 0 TO 360 STEP 90 PSET (0, 0) DRAW "TA=" + VARPTR$(I) + "BD66C14D14" NEXT COLOR 11, 0 LOCATE 2, 19: PRINT 12 LOCATE 3, 26: PRINT 1 LOCATE 7, 31: PRINT 2 LOCATE 13, 33: PRINT 3 LOCATE 19, 31: PRINT 4 LOCATE 23, 26: PRINT 5 X = -.2: Y = -8.5 FOR I = 1 TO 8 FOR J = 1 TO 8 READ C: PSET (X, Y), C: X = X + 1 / 16 NEXT X = -.2: Y = Y - 1 / 10 NEXT DATA 0,0,11,11,11,0,0,0 DATA 0,11,11,0,0,0,0,0 DATA 11,11,0,0,0,0,0,0 DATA 11,11,11,11,11,0,0,0 DATA 11,11,0,0,11,11,0,0 DATA 11,11,0,0,11,11,0,0 DATA 0,11,11,11,11,0,0,0 DATA 0,0,0,0,0,0,0,0 LOCATE 23, 13: PRINT 7 LOCATE 19, 8: PRINT 8 LOCATE 13, 6: PRINT 9 LOCATE 7, 7: PRINT 10 LOCATE 3, 12: PRINT 11 X$ = TIME$ Y$ = MID$(X$, 7, 2) T = VAL(Y$) Z$ = MID$(X$, 4, 2) L = VAL(Z$) ZZ$ = MID$(X$, 1, 2) AA = VAL(ZZ$) IF AA >= 12 THEN AA = AA - 12 C = FIX(L / 12) H = 180 - AA * 30 - C * 6 PSET (0, 0) DRAW "TA=" + VARPTR$(H) + "C14ND50"
DO WHILE 1 FOR J = 180 - L * 6 TO -174 STEP -6 PSET (0, 0) DRAW "TA=" + VARPTR$(J) + "C15ND60" IF (J + 180) / 72 = (J + 180) \ 72 THEN PSET (0, 0) H = H - 6 Q = H + 6 DRAW "TA=" + VARPTR$(Q) + "C0ND50" DRAW "TA=" + VARPTR$(H) + "C14ND50" END IF
FOR K = 180 - T * 6 TO -174 STEP -6 PSET (0, 0) DRAW "TA=" + VARPTR$(K) + "C4ND65" IF J = K + 6 THEN PSET (0, 0) DRAW "TA=" + VARPTR$(J) + "C15ND60" END IF
IF H = -180 THEN H = 180 IF H = J + 6 OR H = K + 6 OR H = -174 AND (K = 180 OR J = 180) THEN PSET (0, 0) DRAW "TA=" + VARPTR$(H) + "C14ND50" END IF
D = SEC(KI) M$ = INKEY$ IF M$ = CHR$(27) THEN EXIT DO DRAW "TA=" + VARPTR$(K) + "C0ND65" NEXT T = 0: L = 0 PSET (0, 0) DRAW "TA=" + VARPTR$(J) + "C0ND60" NEXT LOOP
FUNCTION SEC (T) IF T = 0 THEN KON = 10000000 ELSE KON = T F$ = TIME$ FOR I = 1 TO KON IF F$ <> TIME$ THEN IF VX = 0 THEN NI = I F$ = TIME$ VX = 1 ELSE KI = I EXIT FOR END IF END IF NEXT I SEC = KI - NI END FUNCTION
Литература
1. З.П. Вострикова, О.Ю. Вострикова, С.С. Туева. Программирование на языке "Бейсик" для персональных ЭВМ. М.- Машиностроение, 1993, 352 с. 2. В.Г. Баула, Н.Д. Васюкова, В.В. Тюляева, П.В. Уманец. Основы программирования и алгоритмические языки. М.- Энергоатомиздат, 1991, 394 с. 3. В.К. Алиев. Языки Бейсик. М. "Солон-Р", 2000, 224 с. 4. Б. Уолш. Программирование на Бейсике. Перевод с английского. М.- "Радио и связь", 1988, 336 с. 5. Методические указания по изучению алгоритмического языка Бейсик по курсу "Экономическая информатика и вычислительная техника". Кривой Рог, Криворожский филиал КИНХ, 1989, 44 с. 6. Методические указания и учебные задания к изучению курса "Компьютерная техника и программирование", Кривой Рог, Криворожский филиал КИНХ, 1992, 68 с.
|