русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Построение дуг и окружностей


Дата добавления: 2015-06-12; просмотров: 1333; Нарушение авторских прав


Для задания углов используется полярная система координат (см. рис.6.2).

 

Рис.6.2. Полярная система координат

 

Процедура вычерчивания окружности текущим цветом имеет следующий формат:

Circle (X, Y, Radius :word);

где X, Y – координаты центра окружности,

Radius – ее радиус.

 

Например.

SetColor(Green);

Circle (450, 100, 50);

обеспечит вывод окружности зеленого цвета с радиусом 50 пикселей и центром в точке (450, 100).

 

Для вычерчивания дуги используется процедура

Arc(X, Y : integer; StAngle, EndAngle, Radius : word);

где X, Y – координаты центра окружности,

StAngle и EndAngle – начальный и конечный угол,

Radius – ее радиус.

Если StAngle=0 и EndAngle=359, то вычерчивается полная окружность.

 

Например.

SetColor(Red);

Arc (450, 100, 0, 90, 50);

позволит вывести дугу красного цвета от 0 до 90 градусов.

Для построения эллиптических дуг предназначена процедура

Ellipse(X,Y : integer; StAngle, EndAngle : word, xR, yR : word);

где X, Y – центр эллипса в линейных координатах,

xR, yR – горизонтальные и вертикальные оси.

Если StAngle=0 и EndAngle=360, то вычерчивается полный эллипс.

 

Например.

SetColor(LightCyan);

Ellipse (100, 100, 0, 360, 30, 50);

выводит эллипс ярко-голубого цвета, причем фон внутри эллипса совпадает с фоном экрана.

 

Чтобы создать закрашенный эллипс используется специальная процедураFillEllipse, а заполнитель устанавливается процедурами SetFillStyle и SetColor.

FillEllipse(X,Y : integer; xR, yR : word);

 

Например.

SetFillStyle(10, 2); {Установка стиля заполнения}

SetColor(LightCyan); {Цвет для вычерчивания эллипса}

Ellipse (100, 100, 0, 90, 50);

В этом фрагменте эллипс вычерчивается ярко-красной кривой и заполняется приведенной в таблице 6.3 стандартной маской 10 (редкие точки) зеленого цвета.



 

Для создания и заполнения сектора в эллипсе используется процедура

Sector(X,Y : integer; StAngle, EndAngle, xR, yR : word);

где X, Y – центр,

xR, yR – горизонтальные и вертикальные радиусы.

Сектор вычерчивается от начального угла StAngle до конечного угла EndAngle текущим цветом и заполняется стилем, заданной процедурой SetFillStyle.

 

Например.

SetFillStyle(11, 9);

SetColor(13);

Sector(300, 150, 180, 135, 60, 70);

 

 

6.3 РАБОТА С ТЕКСТОМ

 

Выводимые на экран изображения обычно сопровождаются пояснительным текстом. В графических режимах для этого используются процедуры OutText и OutTextXY.

Процедура OutText выводит строку текста, начиная с текущего положения курсора.

OutText(Textstring : string)

где Textstring – константа или переменная типа string.

 

Например,OutText(‘Вводите данные: ‘);

 

Явный недостаток этой процедуры – нельзя указать произвольную точку начала вывода. Его можно устранить с помощью процедуры OutTextXY.

OutTextXY(X,Y : integer; Textstring : string)

где X, Y – координаты точки начала вывода текста.

 

Например,

OutText(60,100, ‘Для продолжения нажмите любую клавишу… ‘);

выводит сообщение “Для продолжения нажмите любую клавишу”, начиная с точки 60, 100.

 

Вывод текста в графических режимах может осуществляться самыми различными стандартными и пользовательскими шрифтами. Различают два типа шрифтов: растровые и и векторные. Растровый задается матрицей точек, а векторный – рядом векторов, составляющих символ.

По умолчанию после инициализации графического режима устанавливается шрифт DefaultFont, который, как правило, является шрифтом, используемым установленным драйвером клавиатуры. Активизация нужного шрифта осуществляется с помощью процедуры

SetTextStyle(Font : word; Direction : word, CharSize : word);

где Font – выбранный шрифт,

Direction – направление (горизонтальное или вертикальное),

CharSize – размер выводимых символов.

 

Возможные значения двух первых параметров представлены в таблице 6.6.

 

Шрифты

Таблица 6.6

Константа Значение Описание
DefaultFont TriplexFont SmallFont SansSerifFont GothicFont 8x8 битовый шрифт Штриховые шрифты Малый шрифт Сансериф Готический
Константы ориентации
HorizDir VertDir Слева направо Снизу вверх

 

В качестве примера шрифтом DefaultFont выведем две строки: вертикальную и горизонтальную разной величины:

SetTextStyle(0, 1, 1) {Буквы стандартной величины}

OutTextXY(200,200, ‘Вертикальная строка‘);

SetTextStyle(0, 1, 1) {Размер букв увеличен}

OutTextXY(200,200, ‘Горизонтальная строка‘);

 

Пример. Нарисовать эмблему. В левой верхней части графического экрана на черном фоне нарисовать голубой квадрат, а в нем – черный круг, закрашенный желтым цветом. В центре эмблемы черными буквами написать слово «АГНИ».

 

program Emblema;

uses Crt, Graph;

var driver, mode : integer;

begin

clrscr;

driver:=detect;

initgraph(driver, mode,’’);

setbkcolor(0);

setcolor(3);

rectangle(100, 0, 300, 200);

setfillstyle(1, 3);

floodfill(200, 100, 3);

setcolor(14);

circle(200, 100, 100);

setfillstyle(1, 14);

floodfill(200, 100, 14);

setcolor(0);

circle(200, 100, 100);

settextstyle(0, 0, 3);

outtextxy(135,100, ‘АГНИ‘);

readln

end.

Пример. Нарисовать разными цветами десять концентрических окружностей с общим центром в точке с графическими координатами (320; 240), и описать вокруг них красный прямоугольник.

 

program Circle10;

uses Crt, Graph;

var driver, mode, r : integer;

begin

clrscr;

driver:=detect;

initgraph(driver, mode,’’);

r:=10; {радиус первой окружности 10 пикселей}

while r<=100 do

begin

setcolor(random(15));

circle(320, 240, r)

r:= r+10

end

setcolor(4);

rectangle(220, 140, 420, 340);

readln

end.

 

Пример. Написать программу рисования графика функции y=2Sin(2x)+1 на отрезке[0;2p], протабулировав функцию с шагом h=0,1.

 

Program GrafikSin;

uses Crt, Graph;

const a=0; b=2*pi;

h=0.1; h1=5;

x0=60; y0=240; M=50;

var driver, mode, x1, y1 : integer;

x, y : real;

function f(x:real) : real;

begin

f:=2*sin(2*x)+1

end;

begin

clrscr;

driver:=detect;

initgraph(driver, mode,’’);

setcolor(14);

setbkcolor(1);

line(20, y0, 600, y0); {Координатная ось х}

line(x0, 440, x0, 20); {Координатная ось y}

x:=a;

x1:=x0 + trunc(M*x);

{x, y – математические координаты}

y:=f(x);

y1:=y0 - trunc(M*y);

{x1, y1 – графические координаты}

moveto(x1, y1);

setcolor(15);

while x<=b do

begin

y:=f(x);

y1:=y0 - trunc(M*y);

lineto(x1, y1);

x1:= x1+h1;

x:= x+h;

end

readln

end.

 

 

6.4 ПОНЯТИЯ ОБ АНИМАЦИИ

 

Чередование засвечиваний и гашений изображения используют для имитации движения этого изображения на экране. Перед очередным засвечиванием объект необходимо переместить в направлении его движения. Движение изображения на экране называют анимацией.

Для имитации движения объекта на экране нужно выполнить такой циклический алгоритм:

1. Нарисовать объект в нужной точке, сделать паузу.

2. Удалить объект, закрасив его цветом фона.

3. Изменить координаты объекта.

4. Возвратиться к пункту 1.

 

Пример. Изобразить движение солнца на голубом небе в горизонтальном направлении.

 

program Sonce;

uses Crt, Graph;

var driver, mode, r : integer;

begin

clrscr;

driver:=detect;

initgraph(driver, mode,’’);

i:=0;

while i<=590 do

begin

setcolor(14); {цвет солнца}

setbkcolor(3); {цвет неба}

setfillstyle(1, 14); {рисуем солнце желтым цветом}

circle(i, 100, 50);

floodfill(i, 100, 14);

delay(200);

setfillstyle(1, 3); {закрашиваем солнце цветом фона - голубым}

setcolor(3);

circle(i, 100, 50);

floodfill(i, 100, 3);

i:= i+5

end

readln

end.

 

 

СПИСОК ЛИТЕРАТУРЫ

 

1. Алаев Ю.А., Гладков В.П., Козлов О.А. Практикум по алгоритмизации и программированию на языке Паскаль. М.:Финансы и статистика, 2004.

2. Глинский Я.Н., Анохин В.Е., Ряжская В.А. Turbo Pascal 7.0 и Delphi. СПб.:ДиаСофтЮП, 2003.

3. Культин Н. Turbo Pascal в задачах и примерах. СПб.: БХВ - Петербург, 2003.

4. Марченко А.И., Марченко Л.А. Программирование в среде Turbo Pascal 7.0. Киев: Век+, 2000.

5. Немнюгин С.А., Перколаб Л. Изучаем Turbo Pascal. СПб.: Питер, 2003.

6. Немнюгин С.А., Turbo Pascal. Практикум. СПб: Питер, 2001.

7. Попов В.Б. Паскаль и делфи. Учебный курс. М.: Питер, 2005.

8. Рапаков Г.Г., Ржеуцкая С.Ю. TURBO PASCAL для студентов и школьников. СПб.: БХВ - Петербург, 2004.

9. Семакин И.Г., Шестаков А.П. Основы программирования. М.: Академия 2003.

10. Шпак Ю.А., Turbo Pascal 7.0 на примерах. Киев: Юниор, 2003.


 

ОГЛАВЛЕНИЕ

 

Методика подготовки. 1

и решения задачи на ПК.. 1

ГЛАВА1. 3

АЛГОРИТМИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ПРОЦЕССОВ.. 3

1.1 АЛГОРИТМ И ЕГО СВОЙСТВА. 3

1.2 СПОСОБЫ ОПИСАНИЯ АЛГОРИТМОВ. 4

1.3 ОСНОВНЫЕ СТРУКТУРЫ АЛГОРИТМОВ. 9

1.3.1 Алгоритмы линейной структуры.. 9

1.3.2 Алгоритмы разветвляющейся структуры.. 11

1.3.3 Алгоритмы циклической структуры.. 16

1.3.4. Алгоритмы со структурой вложенных циклов. 27

1.4 ПОДЧИНЕННЫЕ АЛГОРИТМЫ.. 29

Контрольные вопросы.. 31

ГЛАВА 2. 33

АЛГОРИТМИЧЕСКИЙ ЯЗЫК ПАСКАЛЬ.. 33

2.1 АЛФАВИТ ЯЗЫКА ПАСКАЛЬ. 33

2.1.1 Символы алфавита. 33

2.1.2 Слова языка Паскаль. 35

2.2 КОНСТАНТЫ И ПЕРЕМЕННЫЕ. 37

2.3 ТИПЫ ДАННЫХ ЯЗЫКА ПАСКАЛЬ. 39

2.3.1 Целочисленные типы данных. 40

2.3.2 Вещественные типы данных. 44

2.3.3 Логический тип. 46

2.3.4 Символьный тип. 47

2.4 ОПЕРАЦИИ И ВЫРАЖЕНИЯ.. 49

2.4.1 Арифметические выражения и операции. 49

2.4.2 Выражения и операции отношения. 53

2.4.3 Логические выражения и операции. 54

2.4.4 Приоритет операций. 54

2.4.5 Полезные операции. 55

2.4.6 Примеры выражений. 56

2.5 СТРУКТУРА ПРОГРАММЫ НА ЯЗЫКЕ ПАСКАЛЬ. 56

2.5.1 Заголовок программы.. 57

2.5.2 Раздел указания подключаемых модулей. 57

2.5.3 Блок описаний. 58

1)раздел описания меток. 58

2)раздел описания констант.. 59

3)раздел описания переменных. 59

4)раздел определения типов данных. 60

5)раздел описания процедур и функций. 61

2.5.4 Блок операторов. 62

КОММЕНТАРИИ.. 63

Контрольные вопросы.. 64

ГЛАВА 3. 68

Операторы языка ПАСКАЛЬ.. 68

3.1 ВВОД-ВЫВОД ДАННЫХ. 68

3.1.1 Процедура чтения Read. 68

3.1.2 Процедура записи Write. 70

Формат вывода. 71

3.2 ОПЕРАТОРЫ.. 73

3.2.1 Простые операторы.. 74

1)оператор присваивания. 74

2)оператор безусловного перехода goto. 75

3)оператор вызова процедуры.. 76

4)пустой оператор. 77

3.2.2 Структурные операторы.. 77

1)составной оператор. 77

2)условные операторы.. 78

Условный оператор if 78

Оператор выбора Case. 83

3)операторы повтора. 86

Оператор repeat 86

Оператор while. 91

Оператор For 97

Контрольные вопросы.. 105

ГЛАВА 4. 110

Массивы.. 110

4.1 ОДНОМЕРНЫЕ МАССИВЫ.. 110

4.2 ДВУМЕРНЫЕ МАССИВЫ.. 113

4.2.1 Квадратные матрицы.. 113

4.3 ДЕЙСТВИЯ НАД МАССИВАМИ.. 114

4.4 ДЕЙСТВИЯ НАД ЭЛЕМЕНТАМИ МАССИВА. 115

4.4.1 Ввод элементов массива. 115

4.4.2 Вывод элементов массива. 116

4.4.3 Обработка элементов одномерного массива. 116

4.4.4 Обработка элементов двумерного массива. 117

4.5 ПРИМЕРЫ ЗАДАЧ НА МАССИВЫ.. 118

4.6 СОРТИРОВКА ОДНОМЕРНОГО МАССИВа. 128

Контрольные вопросы.. 132

ГЛАВА 5. 133

Процедуры и функции.. 133

5.1 ПРОЦЕДУРЫ ПОЛЬЗОВАТЕЛЯ.. 133

5.1.1 Обращение к процедуре. 135

5.2 ФУНКЦИИ ПОЛЬЗОВАТЕЛЯ.. 138

ГЛАВА 6. 142

графика.. 142

6.1 МОДУЛЬ GRAPH.. 143

6.2 БАЗОВЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ.. 144

6.2.1 Установка цвета. 145

6.2.2 Вывод точки. 147

6.2.3 Вывод линии. 147

6.2.4 Построение графических фигур. 149

1)Построение прямоугольников. 149

2)Построение дуг и окружностей. 150

6.3 РАБОТА С ТЕКСТОМ.. 152

6.4 ПОНЯТИЯ ОБ АНИМАЦИИ.. 155

СПИСОК ЛИТЕРАТУРЫ.. 157

 



<== предыдущая лекция | следующая лекция ==>
Построение прямоугольников | Сообщения об ошибках периода компиляции


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.014 сек.