русс | укр

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

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

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

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


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

Программирование WIN32 API | Функции WIN32 API

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

 

Универсальные

1.Изображения пикселя и получения его цвета.
СOLORRF SetPixel (HDC hDC,
int x, y,                   //координаты
COLORREF color);   //цвет

Все фигуры рисует PEN, по умолчанию толщина линии 1 пиксель.

BOOL LineTo(HDC hDC, int x, int y);
Линия ведется от точки с координатами (х,у) к текущей точке контекста (0,0).
Возвращает: 0 – False, если не может рисовать линию
1 -  True   

Установка текущей точки контекста.
BOOL MoveToEx (HDC hDC, int x, int y, LPPoint lpOldxy);

Определение текущей точки.
BOOL GetCurrenPosition(HDC hDC, LPPOINT pxycurrent);

 

Изображение кривых

Изображение прямоугольников

BOOL Rectangle (HDC hDC, int x1, int y1, int x2, int y2);

 

Прямоугольник со скругленными углами.

BOOL RoundRectangle (HDC hDC, int x1, int y1, int x2, int y2, int Dx, int Dy);
 

Эллипс.
BOOL Ellipse(HDC hDC, int x1, int y1, int x2, int y2);
 

 

Изображение дуги эллипса.

BOOL Arc (HDC hDC, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);

 

Замкнутая дуга

Chord (hDC, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);


 

Эллиптический сектор

Pie (hDC, int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);

 

Фигуры соединения большого числа точек.

Кусочно-линейная аппроксимация

Любая кривая - последовательность прямых.
POINT   mT[100];
mT[0].x = 1;
mT[0].y = 1;

BOOL Polyline (HDC hDC, POINT mt, int N)

; // N – число течек, которые нужно соединить

 

PolylineTo(hDC,mT,Nz);    //Рисование не сточки с координатами(х0,у0), а с текущей точки поля.

 

Соединение точек  с замыканием и заливкой.

Bool Polygon(HDC hDC, POINT mT, int N);
 

 

 

Рисование нескольких кривых

DWORD   mNT[k];
mNT= {3,4,2};

BOOL PolyPolyline (HDC hDC, POINT mt, Dword mNT ,Dword k)- Dword k количество кривых;


 

 

Создание нескольких замкнутых.
Bool Polygon(HDC hDC, POINT mt, Dword mNT ,Dword k)

Если линии пересекаются.
SetPolyFillMode(hDC, int ARTERNATE) – заливается полностью.

Или SetPolyFillMode(hDC, int WINDING) – то так

 

                                   

Кривая бизье - апрокссимация параболами второго порядка, можна сделать плавный переход.
Технология изображения этих кривых лежит в основе построения шейдеров в CorelDraw.
Основная идея: мы говорим где рассположена точка и крутизну будущей параболы (tg) и задаем ее прямой линией.

PolyBezier(HDC LDC, const Point mB, DWORD N);
PolyBezierTo(HDC LDC, const Point mB, DWORD N);

 

 

!!! Если линии кривой Bezier пересекаются, то заливка автоматически не выполняется.

 

Дополнительные возможности рисования прямоугольников не пременяя BRUSH и PEN:

RECT   r, *pr
{ r.left;          //x1
r.top;          //y1 
r.right;       //x2
r.bottom;   //y2
}
Можно рисовать произвольные цвета не меняя контекста.
Для изображения используется своя BRUSH
HBRUSH hBrush = Create SclidBrush (RGB(R,G,B));
от 0-255 для каждого,
т.е. 16 млн. цветов

 

Заливка области без контура.

int FillRect(HDC hDC, LPRECT &r, HBRUSH hBrush)

Инверсия цвета внутри заданного прямоугольника
IuVertRect (HDC hDC, LPRECT &r);

Изображение прямоугольника с контуром заданного цвета по имени цвета в Pent в контексте :

FrameRect(HDC hDC, LPRECT &r, HBRUSH hBrush);

Особенности:
Смещение прямоугольников.

OffSetRect(&r, Dx, Dy);
 

 

Изменение полей в Rect путем изменения его значений в структуре

IntLateRect(&r, Dx, Dy);

 

Нужно найти координаты прямоугольника, который их полностью охватывает

 

Unicn Rect (&R, &r1, &r2);

Нахождение прямоугольника
InterSectRect(&R, &r1, &r2);

Просмотров: 8192

Вернуться в оглавление:Компьютерная графика




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


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

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

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


 


Полезен материал? Поделись:

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

 
 

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