Главная » Просмотр файлов » Шупрута В.В. - Delphi 2005 - Учимся программировать

Шупрута В.В. - Delphi 2005 - Учимся программировать (1080891), страница 52

Файл №1080891 Шупрута В.В. - Delphi 2005 - Учимся программировать (Шупрута В.В. - Delphi 2005 - Учимся программировать) 52 страницаШупрута В.В. - Delphi 2005 - Учимся программировать (1080891) страница 522018-01-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 52)

LineTo(xO+_width,yO);// Рисуем подписи к оси X и вспомогательную сетку.x:=xO+dx;for i:=l to 7 dobeginMoveTo(x,yO-3);LineTo(x,yO+3);TextOut(x-15,yO+10,lbll[i]);Pen.Style:=psDot;MoveTo(x,yO-3);LineTo(x,yO-_height);Pen.Style:=psSolid;x:=x+dx;end;// Рисуем подписи к оси Y и вспомогательную сетку.y:=yO-dy;for i:=l to 7 dobeginMoveTo(xO-3,у);LineTo(xO+3,y);TextOut(xO-25,y,FloatToStr(lbl_Y));Pen.Style:=psDot;MoveTo(xO+3,y);LineTo(xO+_width,y);Pen.Style:=psSolid;y:=y-dy;lbl_Y:=lbl_Y+dlbl_Y; .end;// Рисуем график функции.Pen.Width:=3,•Pen.Color:=clRed;Изучаем основные графические примитивыMoveTo(xO+dx,yO-dy);for i:=l to 7 do PolyLine(price);end;end;end.•Unl3l^ВДКер исгоАэомии.

методо! line гоиРб^йР"380037003600•/ж35O0\3400\33003200-понедельник вторниксредаЧ"\ X""/тчетверг" пятю-адасубботавоскресеньеРис. 8.4 т Результат работы программы с использованием методов LineTo и PolyLineРезультат работы программы показан на рис. 8.4.ПрямоугольникПрямоугольник можно начертить методом Rectangle. В качестве параметров этогометода указываются координаты двух углов, расположенных на одной диагонали:<Компонент>.Canvas.Rectangle(xl,yl,x2,y2);Методом RoundRec t также можно начертить прямоугольник. Отличие данногометода от предыдущего состоит в том, что прямоугольник рисуется со скругленными углами.

Инструкция вызова метода RoundRec выглядит следующим образом:<Компонент>.Canvas.RoundRect(xl,yl,х2,у2,хЗ,уЗ);где хЗ и уЗ - параметры, которые определяют «скругленность» углов прямоугольника. На рис. 8.5 можно увидеть, что параметры хЗ и уЗ задают размерэллипса, четверть которого используется для рисования скругленного угла.ГЛАВА 8 • Изучаем основы работы с графикой в Win32хз(X1.Y1)Y3J .(X2.Y2)Рис. 8.5 т Значение параметров при вызове метода RoundRectПри рисовании прямоугольника вид линии контура (ее цвет, ширина истиль) определяется текущими установками карандаша (ТРеп), а стиль и цветзаливки - установками кисти (TBrush).Существуют также и другие методы рисования прямоугольников. МетодF i l l R e c t рисует закрашенный прямоугольник, метод FrameRect - контурпрямоугольника.

Отличие данных методов от рассмотренных ранее состоит втом, что им передается только один параметр - структура типа Rect. Поляструктуры содержат координаты прямоугольной области, которые заполняются с помощью функции Rect. Пример использования методов рисованияпрямоугольников приведен ниже в листинге 8.4.Листинг 8.4 т Пример использования методов рисования прямоугольниковprocedure TForml.FormPaint(Sender: TObject);varreel,rec2:TRect; // Структуры для рисования методами FillRect и// FrameRect.begin// Рисуем прямоугольники с помощью методов Rectangle и RoundRect.with Forml.Canvas dobeginBrush.Color:=clMaroon;Rectangle(20,20,100,80);Brush.Color:=clBlue;RoundRect(120,20,200,80,20,10);end ;// Заполняем поля структур Rect.recl:=Rect(20,120,100,180);rec2:=Rect(120,120,200,180);// Рисуем прямоугольники с помощью методов FillRect и FrameRect.with Forml.Canvas dobeginИзучаем основные графические примитивыBrush.Color:=clRed;FillRect(reel);Brush.Color:=clBlue;FrameRect(rec2);end;end;Результат работы программы можно увидеть на рис.

8.6.Рис. 8.6 т Результат применения различных методов рисования прямоугольниковМногоугольникМногоугольник можно нарисовать методом Polygon. При этом вычерчиваетсяконтур многоугольника. Инструкция рисования многоугольника выглядитследующим образом:<Компонент>.Canvas.Polygon(M_points);Параметр M_points представляет собой массив из элементов типа TPoint.Эти элементы являются узловыми вершинами (так же, как и в случае рисованияломаной линии). Вершина, которая является последней в массиве, соединяетсяс первой вершиной.Цвет и стиль границы многоугольника определяются значениями свойствкарандаша (ТРеп), а цвет и стиль заливки - свойствами кисти (TBrush).Например, следующий фрагмент кода (листинг 8.5) вычерчивает правильныйвосьмиугольник с использованием метода Polygon.Листинг 8.5 т Использование метода Polygonprocedure TForml.FormPaint(Sender: TObject);var xO,yO:integer;// Координаты геометрического центра фигуры.angle:integer;ГЛАВА 8 • Изучаем основы работы с графикой в Win32dangle:integer;radius:integer;n:integer;dx,dy:integer;P_Array:array[1.// Угол, образуемый между соседними вершинами.// Радиус окружности, в которую вписана фигура.// Число вершин фигуры..8] of TPoint; // Массив с координатами 8// вершин.// Счетчик цикла.1:integer;begin// Выполняем начальные установки.хО:=135;уО:=1ОО;п:=8;radius:=50;dangle:=round(360/n) ; // Определяем угол между двумя соседними// в ершинами.angle:= 90;// Начальный угол = 90.// Определяем в цикле координаты (х,у) вершин многоугольника.for i:=l to n dobegindx:=round(radius*cos(PI*angle/180));dy:=round(radius*sin(PI*angle/180));angle:=angle+dangle;P_Array[i].x:=xO+dx;P_array[i].y:=yO-dy;end;// Рисуем правильный восьмиугольник.Forml.Canvas.Brush.Color:=clRed;Forml.Canvas.Polygon(P_Array);end;А на экране результат выполнения данного кода будет выглядеть так, какпоказано на рис.

8.7.Рис. 8.7 т Применение метода PolygonИзучаем основные графические примитивыОкружность и эллипсЭллипс можно нарисовать методом E l l i p s e . Этот же метод рисует иокружность, которая является частным случаем эллипса. В качестве параметровметода указывается прямоугольная область, ограничивающая фигуру (рис. 8.8):<Компонент>.Canvas.Ellipse(xl,yl,x2,у2);(X1.Y1)Рис. 8.8 • Способ задания эллипсаЦвет и стиль границы эллипса определяются значениями свойствкарандаша (ТРеп), а цвет и стиль заливки - свойствами кисти (TBrush).

-ДугаДуга представляет собой часть эллипса. Поэтому в методе Arc, которыйпозволяет нарисовать дугу, в качестве параметров необходимо дополнительноуказать две точки, определяющие начало и конец дуги. Инструкция вызоваметода Arc выглядит следующим образом:<Компонент>.Canvas.Arc(xl,yl/x2,у2,хЗ,уЗ,х4,у4);Параметры xl, y l , х2, у 2 определяют эллипс, частью которого являетсядуга. Параметры (хЗ, уЗ) задают начальную точку дуги, (х4, у4) - конечнуюточку дуги (рис. 8.9).Необходимо заметить, что дуга вычерчивается против часовой стрелки, отначальной точки (хЗ, уЗ) к конечной (х4, у4).(X1.Y1)(X3.Y3) .(X4.Y4)(X2.Y2)Рис. 8.9 т Способ задания дуги•ГЛАВА 8 • Изучаем основы работы с графикой в Win32СекторСектор задается тем же способом, что и дуга. Для рисования сектора необходимо использовать метод Pie:<Компонент>.Canvas.Pie(xl,yl,х2,у2,хЗ, у З , х 4 , у 4 ) ;Параметры x l , y l , х2, у2 также задают прямоугольную область.

Секторвырезается против часовой стрелки от прямой, заданной точкой с координатами (хЗ, уЗ), к прямой, заданной точкой с координатами (х4, у4). Всевышесказанное иллюстрирует рис. 8.10.(X3.Y3)(X4.Y4)I(X2.Y2)Рис. 8.10 т Способ задания сектораТочкаУ поверхности Canvas, на которую осуществляется вывод графики, существуетсвойство P i x e l s , которое представляет собой двумерный массив типа TColor.Этот массив содержит информацию о цвете каждой точки графическойповерхности.

Используя свойство P i x e l s , можно задавать цвет для любой точкиграфической поверхности. Например, инструкция следующего видаForml.Canvas.Pixels[100,200]:=clBlue;окрашивает точку (100, 200) в синий цвет.Напомню, что размеры графической поверхности формы определяютсязначениями свойств C l i e n t W i d t h и C l i e n t H e i g h t , в то время как общийразмер компонента определяется значениями свойств Width и H e i g h t .Поэтому максимально доступная поверхность для рисования ограничиваетсяпрямоугольным контуром (0 , 0 , C l i e n t W i d t h - l , C l i e n t h e i g h t - l ) .Данное свойство можно использовать, например, для рисования графиковфункций.

Приведенный ниже фрагмент кода (листинг. 8.6) демонстрируетиспользование свойства P i x e l s .Изучаем основные графические примитивыЛистинг 8.6 т Рисование графика функции с помощью свойства pixelsprocedure TForml.FormPaint(Sender: TObj ect);var xO,yO:integer; // Координаты начала отсчета.i:integer;//'Счетчик цикла - 0..360 градусов.beginх0:=50; уО:=1ОО;for i:=l to 360 doCanvas.Pixels[xO+i,y.0-round(80*sin(PI*i/180))]:=clBlack;end ;Результат использования данного кода приведен на рис. 8.11.Рис.

8.11 т Рисование графика функции у = sin(x) с помощью свойства P i x e l sВывод текстаТекст на графическую поверхность можно вставить с помощью метода TextOut:<Компонент>.Canvas.TextOut(x,y,<Текст>);Пара параметров (х, у) задает положение текста на экране, параметр< Текст > содержит строку текста, которую необходимо отобразить. В качествепримера использования метода TextOut можно привести фрагмент кода,приведенный в листинге 8.7 (процедура обработки события формы OnPaint).Листинг 8.7 т Использование метода TextOutprocedure TForml.FormPaint(Sender: TObject);beginwith Forml.Canvas dobegin// Верхняя надпись - цвет фона совпадает с цветом кисти.ГЛАВА 8 • Изучаем основы работы с графикой в Win32Brush. Color: =clYellow,Font.Size:=18;Font.Style:=[fsItalic,fsBold];TextOut(10,30,'Работас графикой в W i n 3 2 1 ) ;/ / Нижняя надпись - цвет фона совпадает с цветом формы.Brush.Color:=Forml.Color;TextOut(10,70,'Работас графикой в Win32');end;end ;В приведенном примере для вывода текста используется шрифт, заданныйсвойством Font соответствующего объекта Canvas.

Ниже в табл. 8.8приведены свойства объекта Font, задающие различные характеристикишрифта.Таблица 8.8 т Свойства объекта TFontСвойствоКомментарийNameОпределяет имя шрифтаSizeРазмер шрифта. Задается в пунктах (1 пункт равен 1/72 дюйма)StyleСвойство определяет стиль начертания шрифта. Стиль задается следующимиконстантами: f s B o l d - полужирный шрифт, f s l t a l i c - курсив, f sUnderLine подчеркнутый, f s S t r i k e O u t - зачеркнутый. Допускается любое сочетание константColorСвойство определяет цвет символов с помощью константы типа TColorРезультат использования исходного кода, приведенного в листинге 8.7,представлен на рис.

8.12. Как видно из рисунка, область вывода текстазакрашивается текущим цветом кисти. Поэтому если необходимо вывеститекст без фонового цвета, то следует свойство кисти Brush .Color установитьравным свойству Forml. Color.Работа с графикой в Win32Работа с графикой в Win32Рис. 8.12 т Использование метода TextOut для вывода текстаГрафические возможности для создания мультипликацииИспользуем графические возможностидля создания мультипликацииВ главе 6 мы подробно рассмотрели основные вопросы, касающиеся мультипликации. В этой главе создадим аналогичную программу, позволяющуюдостичь того же эффекта.

Характеристики

Тип файла
PDF-файл
Размер
37,94 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6353
Авторов
на СтудИзбе
311
Средний доход
с одного платного файла
Обучение Подробнее