Скачать презентацию Кафедра Автоматизированные станочные системы Dept Of Automated Manufacturing Скачать презентацию Кафедра Автоматизированные станочные системы Dept Of Automated Manufacturing

Лекция 1. Основы графики.ppt

  • Количество слайдов: 18

Кафедра «Автоматизированные станочные системы» Dept. Of Automated Manufacturing Systems Основы работы с графикой 2 Кафедра «Автоматизированные станочные системы» Dept. Of Automated Manufacturing Systems Основы работы с графикой 2 семестр, лекция 1 Троицкий Д. И. Информатика 220200 2 семестр 1

Основные сведения о компьютерной графике GDI – Graphics Device Interface Соотношение сторон: 640 800 Основные сведения о компьютерной графике GDI – Graphics Device Interface Соотношение сторон: 640 800 1024 480 600 768 4: 3 Цветовая глубина – бит/пиксел pixel 8 бит на канал 3 цветовых канала 24 бит=16, 7 млн. цветов 16 бит на точку 1 цветовой канал 8 бит на точку 1 цветовой канал Троицкий Д. И. Информатика 220200 2 семестр 2 1 бит на точку 1 цветовой канал

Цветовые каналы = RGB R=G=B=0 – черный R=G=B=255 – белый R=G=B – серый Получение Цветовые каналы = RGB R=G=B=0 – черный R=G=B=255 – белый R=G=B – серый Получение сведений о графическом режиме Встроенный объект Screen типа TScreen Основные свойства: Width – ширина экрана в пикселах; Height – высота экрана в пикселах; Desktop. Width – ширина виртуального рабочего стола в пикселах; Desktop. Height – высота виртуального рабочего стола в пикселах; Pixels. Per. Inch – разрешение экрана, точек на дюйм. procedure TForm 1. Button 1 Click(Sender: TObject); begin Label 1. Caption: =Int. To. Str(Screen. Width)+'x'+ Int. To. Str(Screen. Height)+', '+ Int. To. Str(Screen. Pixels. Per. Inch)+'dpi' end; Троицкий Д. И. Информатика 220200 2 семестр 3

Свойства прозрачности формы Альфа-канал – дополнительный канал цветности, отвечающий за отсутствие цвета (прозрачность) Свойство Свойства прозрачности формы Альфа-канал – дополнительный канал цветности, отвечающий за отсутствие цвета (прозрачность) Свойство Alpha. Blend (Boolean) включает/выключает режим прозрачности всей формы, а свойство Alpha. Blend. Value (BYTE) задает уровень прозрачности. Alpha. Blend. Value=255 - форма полностью непрозрачна Alpha. Blend. Value=0 форма невидима Плавное появление формы: procedure TForm 1. Form. Activate(Sender: TObject); var i: byte; begin Alpha. Blend: =True; for i: =0 to 127 do begin Alpha. Blend. Value: =i*2; Repaint end; Троицкий Д. И. Информатика 220200 2 семестр 4

Задание прозрачности отдельных компонентов Чтобы сделать прозрачным отдельные компоненты на форме, следует использовать свойства Задание прозрачности отдельных компонентов Чтобы сделать прозрачным отдельные компоненты на форме, следует использовать свойства формы Transparent. Color (Boolean) и Transparent. Color. Value (TColor). Если Transparent. Color=True, то все компоненты на форме, имеющие цвет, равный заданному в свойстве Transparent. Color. Value, будут прозрачными. Троицкий Д. И. Информатика 220200 2 семестр 5

Начинаем рисовать Наш холст – Canvas, свойство многих объектов (например, Image) Самое простое – Начинаем рисовать Наш холст – Canvas, свойство многих объектов (например, Image) Самое простое – вставить статическую картинку из файла Основные форматы графических файлов: формат ani – растровый анимированный курсор. В компоненте TImage отобразится только первый кадр анимации; формат gif – растровый формат, широко используемый в Интернете. Недостаток – поддерживаются только 256 цветов. Достоинство – возможность задания прозрачных областей и возможность создания так называемых анимированных gif-файлов, состоящих из последовательности кадров (как и для ani-файлов, TImage будет отображать только первый кадр); Троицкий Д. И. Информатика 220200 2 семестр 6

формат bmp – ветеран, существует еще со времен операционной системы DOS. Это растровый формат формат bmp – ветеран, существует еще со времен операционной системы DOS. Это растровый формат с различными вариантами цветовой глубины (от черно-белой картинки до 16 млн. цветов) и с возможностью сжатия информации без потерь. Прозрачные области не поддерживаются; формат wmf (Windows metafile) – векторный формат, специально разработанный для Windows. Внутри это последовательность команд отрисовки изображения. Компактен, отлично подходит для вывода чертежей, схем, графиков. Формат wmf понимают практически все программы: Word, Visio, Corel, Компас, Auto. CAD и многие другие; формат emf (enhanced metafile) – улучшенная версия wmf. формат jpeg (Joint Photographic Experts Group) – особый растровый формат. В нем реализовано сжатие изображения с потерями. Один из главных недостатков – отсутствие возможности создавать прозрачные области; формат ico – растровый формат хранения значков ("иконок") Windows фиксированного размера 16 х16 или 32 х32 пиксела. Троицкий Д. И. Информатика 220200 2 семестр 7

Графический файл загружается в компонент Image при помощи его свойства Picture. При этом содержимое Графический файл загружается в компонент Image при помощи его свойства Picture. При этом содержимое файла физически копируется и добавляется в exe – файл нашей программы. Поэтому нежелательно таким образом загружать многомегабайтные картинки: программа разрастается и начинает заметно тормозить. Внешний вид загруженной картинки Center - центрирование изображения Stretch - если True, то картинка автоматически масштабируется в размер компонента Image Auto. Size - противоположна Stretch: при Auto. Size=True компонент Image принимает размер загруженной картинки. Transparent – если True, то при загрузке картинки с прозрачными областями (в форматах gif, wmf, emf) сквозь них будет виден фон. Proportional - указывает, можно ли искажать пропорции загруженной картинки или нет. Incremental. Display - включает режим постепенного вывода больших изображений. При этом картинка выводится на экран по частям, чтобы пользователь видел, что процесс идет, и программа не зависла. Троицкий Д. И. Информатика 220200 2 семестр 8

Программное рисование Обращение к отдельным пикселам: Canvas. Pixels[x, y] начало координат Х Y Рисуем Программное рисование Обращение к отдельным пикселам: Canvas. Pixels[x, y] начало координат Х Y Рисуем звездное небо: var i: word; begin with Image 1. Canvas do Цвет кисти Закрашенный begin прямоугольник Brush. Color: =cl. Black; Fill. Rect(0, 0, Image 1. Width, Image 1. Height)); for i: =1 to 1000 do Pixels[random(Image 1. Width), random(Image 1. Height)]: = cl. White end; Троицкий Д. И. Информатика 220200 2 семестр 9

Тонкая настройка цветов Стандартные цвета задаются константами: cl. Aqua, cl. Black, cl. Blue, cl. Тонкая настройка цветов Стандартные цвета задаются константами: cl. Aqua, cl. Black, cl. Blue, cl. Dk. Gray, cl. Fuchsia, cl. Gray… Если стандартных не хватает: Функция RGB(красный, зеленый, синий) R=78 G=190 B=224 Brush. Color: =RGB(79, 190, 224) Троицкий Д. И. Информатика 220200 2 семестр 10

Инструменты рисования: Pen – рисует контуры Brush – заливает цветом области внутри контуров WITH Инструменты рисования: Pen – рисует контуры Brush – заливает цветом области внутри контуров WITH Image 1. Canvas DO BEGIN Brush. Color: =cl. White; Pen. Color: =cl. Black; Fill. Rect(Image 1. Client. Rect); Move. To(0, Image 1. Height DIV 2); Line. To(Image 1. Width, Image 1. Height DIV 2); Move. To(Image 1. Width DIV 2, 0); Line. To(Image 1. Width DIV 2, Image 1. Height); Brush. Color: =cl. Green; Rectangle(Image 1. Width DIV 2 - 50, Image 1. Height DIV 2 - 50, Image 1. Width DIV 2 + 50, Image 1. Height DIV 2 + 50); Brush. Color: =cl. Red; Ellipse(Image 1. Width DIV 2 - 10, Image 1. Height DIV 2 - 10, Image 1. Width DIV 2 + 10, Image 1. Height DIV 2 + 10); END Троицкий Д. И. Информатика 220200 2 семестр 11

Основные методы рисования: Троицкий Д. И. Информатика 220200 2 семестр 12 Основные методы рисования: Троицкий Д. И. Информатика 220200 2 семестр 12

Основные методы рисования: Arc(X 1, Y 1, X 2, Y 2, X 3, Y Основные методы рисования: Arc(X 1, Y 1, X 2, Y 2, X 3, Y 3, X 4, Y 4: Integer) – дуга эллипса, вписанного в прямоугольник с координатами диагонали X 1, Y 1, X 2, Y 2. Дуга отрисовывается против часовой стрелки от точки пересечения эллипса с прямой (центр эллипса)-(x 3, y 3) до точки (центр эллипса)-(x 4, y 4). arc(100, 200, 100, 100) Троицкий Д. И. Информатика 220200 2 семестр 13

Стили заливки: Brush. Style: =… Троицкий Д. И. Информатика 220200 2 семестр 14 Стили заливки: Brush. Style: =… Троицкий Д. И. Информатика 220200 2 семестр 14

Стили контуров: Pen. Style: =… ps. Solid сплошная линия ps. Dash пунктирная линия ps. Стили контуров: Pen. Style: =… ps. Solid сплошная линия ps. Dash пунктирная линия ps. Dot линия из точек ps. Dash. Dot штрих – пунктирная линия ps. Dash. Dot линия "тире – точка" ps. Clear линия не рисуется (например, для построения объекта без контура) Троицкий Д. И. Информатика 220200 2 семестр 15

Построение геометрических фигур Зафиксируем на холсте одну вершину треугольника в точке с произвольными координатами Построение геометрических фигур Зафиксируем на холсте одну вершину треугольника в точке с произвольными координатами a 1, b 1. Найдем косинус угла CAB по теореме косинусов: по теореме синусов dy 1 - cos 2 (ÐCAB ) = AC sin 90 0 Троицкий Д. И. Информатика 220200 2 семестр 16

Рисование на самой форме with Form 1. Canvas do begin Pen. Color: =cl. White; Рисование на самой форме with Form 1. Canvas do begin Pen. Color: =cl. White; Pen. Width: =20; Move. To(0, 0); Line. To(Self. Client. Width, Self. Client. Height); Move. To(Self. Client. Width, 0); Line. To(0, Self. Client. Height) end Для определения размеров формы используются свойства формы Client. Width и Client. Height, а не просто Width и Height. Дело в том, что свойства Width и Height содержат полный размер формы, включая полоску заголовка, а Client. Width и Client. Height – лишь размеры так называемой клиентской части формы, на которой можно размещать другие объекты. Троицкий Д. И. Информатика 220200 2 семестр 17

Проблема – картинка на форме пропадает при ее перетаскивании procedure Draw; begin with Form Проблема – картинка на форме пропадает при ее перетаскивании procedure Draw; begin with Form 1. Canvas do begin Pen. Color: =cl. White; Pen. Width: =20; Move. To(0, 0); Line. To(Form 1. Client. Width, Form 1. Client. Height); Move. To(Form 1. Client. Width, 0); Line. To(0, Form 1. Client. Height) end; Событие формы On. Paint: procedure TForm 1. Form. Paint(Sender: TObject); begin Draw end; Троицкий Д. И. Информатика 220200 2 семестр 18