Графическая библиотека FrameWork.NET MS Visual Studio. 12 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Графическая библиотека FrameWork.NET MS Visual Studio. 12



Спрайтовая анимация. 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 для копирования прямоугольных областей пикселей с канвы на канву:

ИМЯ ОПИСАНИЕ ПРИМЕР
Draw Рисует TGraphic на канвасе так как он есть, не растягивая. Canvas.Draw(5,10,MyGraphic);
StrechDraw Рисует TGraphic на канвасе, подгоняя (растягивая) его под заданную область. Canvas.StretchDraw(Bounds(0,0,32,32), MyGraphic);
CopyRect Копирует часть TCanvas-а в другой, при необходимости растягивая его. Canvas.CopyRect(Bounds(0,0,32,32), MyBmp.Canvas, Bounds(0, 0, 640, 480));

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 с.)