Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Графическая библиотека FrameWork.NET MS Visual Studio. 12 ⇐ ПредыдущаяСтр 2 из 2
Спрайтовая анимация. 14 Предварительные расчеты.. 14 Методы анимации. 15 6.1. Общий метод. 15 6.2. Отсечение фона маской спрайта. 16 6.3. Простая XOR-анимация. 17 Алгоритмы устранения мерцания спрайтов. 17 7.1. Перекрытие спрайтов. 18 7.2. Промежуточный буфер в ОЗУ.. 18 7.3. Синхронизация с растровой разверткой. 18 7.4. Работа с несколькими страницами видеопамяти. 19 Содержание отчета. 19 9. Выбор варианта задания для студентов. 19 10. Контрольные вопросы.. 20 Пример программы на языках Delphi и C#. 20 Выводы... 23
1. Графическая библиотека BGI+ среды Delphi Работа с графикой в Delphi (или С++Builder) предполагает обращение к канве - свойству Canvas компонентов. Canvas Delphi это холст, который позволяет программисту иметь доступ к каждой своей точке (пикселу), и словно художнику отображать то, что требуется (BGI+ как надстройка над GDI+ Windows). В работе с графикой в Delphi в распоряжении программиста находятся не только канва (холст, полотно - свойство Canvas Delphi компонентов), но и карандаш (свойство Pen), и кисть (свойство Brush) того компонента или объекта, на котором предполагается рисовать. У карандаша Pen и кисти Brush можно менять цвет (свойство Color) и стиль (свойство Style), а у карандаша еще и толщину (Width) и т.п. Доступ к шрифтам предоставляет свойство канвы Font. Эти инструменты позволяют отображать как текст, так и достаточно сложные графики математического и инженерного содержания, а также рисунки. Кроме этого, работа с графикой позволяет использовать в Delphi такие ресурсы Windows как графические и видеофайлы. Конечно, не все компоненты в Delphi имеют эти свойства. На вкладке Additional расположен специализированный компонент TImage, специально предназначенный для рисования, но также свойство Canvas имеют, например, такие компоненты как ListBox, ComboBox, StringGrid, а также и сама Форма, которая размещает наши компоненты! Кроме этого «рисовать» можно на TPaintBox и на невидимом объекте TBitMap – контейнере (буфере в ОЗУ) рисунков. Основное свойство такого объекта как Canvas Delphi - Pixels [i, j] типа TColor, то есть это двумерный массив точек (пикселов), задаваемых своим цветом. Рисование на канве происходит в момент присвоения какой-либо точке канвы заданного цвета. Каждому пикселу может быть присвоен любой доступный для Windows цвет. Например, выполнение оператора
Image1.Canvas.Pixels[100, 200]:=clRed; приведёт к рисованию красной точки с координатами [100, 200]. Узнать цвет пиксела можно обратным присвоением: Color:=Image1.Canvas.Pixels[100, 200]; Тип TColor определён как длинное целое (LongInt). Его четыре байта содержат информацию о долях синего (B), зелёного (G), и красного (R) цветов. В 16-ричной системе это выглядит так: $00BBGGRR. Доля каждого цвета может меняться от 0 до 255. Поэтому, например, чтобы отобразить максимально красную точку, ей нужно присвоить цвет $000000FF. Для ускорения работы с пикселями в TBitMap можно воспользоваться свойством ScanLine, которое возвращает адрес строки (массива) пикселей по 3 байта на цвет. Кроме этого есть методы TCanvas для копирования прямоугольных областей пикселей с канвы на канву:
TCanvas.Draw является обёрткой для API Windows функции BitBlt: function BitBlt( hdcDest: HDC; // дескриптор конечного контекста устройства nXDest, // коорд. x верхнего левого угла конечного прямоугольника nYDest, // коорд. y верхнего левого угла конечного прямоугольника nWidth, // ширина конечного прямоугольника nHeight: Integer; // высота конечного прямоугольника hdcSrc: HDC; // дескриптор исходного контекста устройства nXSrc, // коорд. x верхнего левого угла исходного прямоугольника nYSrc: Integer; // коорд. y верхнего левого угла исходного прямоугольника dwRop: DWORD // код растровой операции ): Boolean; и поддерживает режим «прозрачного цвета», который не копируется и задается свойствами: TGraphics.Canvas.Transparent:=true; и.TransparentColor:=clWhite, например.
Для стандартных цветов в Delphi определён набор текстовых констант. Тоже относится к набору стилей (карандаша и кисти) и режимов цвета.
Константа |
Цвет | Константа |
Цвет | Константа |
Цвет | ||||||||||||||||||||||||||||||||||||||||||
clBlack | Черный | clSilver | Серебристый | clPurple | Розовый | |||||||||||||||||||||||||||||||||||||||||||
clMaroon | Каштановый | clRed | Красный
| clTeal | Зелено-голубой | |||||||||||||||||||||||||||||||||||||||||||
clGreen | Зеленый | clLime | Салатный | clGray | Серый | |||||||||||||||||||||||||||||||||||||||||||
clOlive | Оливковый | clBlue | Синий | clAqua | Бирюзовый | |||||||||||||||||||||||||||||||||||||||||||
clNavy | Темно-синий | clFuchsia | Ярко-розовый | clWhite | Белый | |||||||||||||||||||||||||||||||||||||||||||
|
|
|
| |||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||
Константа |
Вид линии Pen (Pen.Style) | |||||||||||||||||||||||||||||||||||||||||||||||
psSolid | Сплошная линия | |||||||||||||||||||||||||||||||||||||||||||||||
psDash | Пунктирная линия, длинные штрихи | |||||||||||||||||||||||||||||||||||||||||||||||
psDot | Пунктирная линия, короткие штрихи | |||||||||||||||||||||||||||||||||||||||||||||||
psDashDot | Пунктирная линия, чередование длинного и короткого штрихов | |||||||||||||||||||||||||||||||||||||||||||||||
psDashDotDot | Пунктирная линия, чередование одного длинного и двух коротких штрихов | |||||||||||||||||||||||||||||||||||||||||||||||
psClear | Линия не отображается (используется, если не надо изображать границу области, например, прямоугольника) | |||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||||||||||||||
Константа
|
||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2020-10-24; просмотров: 62; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.116.21.229 (0.016 с.) |