| ← Август 2026 | ||||||
|
1
|
2
|
|||||
|---|---|---|---|---|---|---|
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
|
17
|
18
|
19
|
20
|
21
|
22
|
23
|
|
24
|
25
|
26
|
27
|
28
|
29
|
30
|
|
31
|
||||||
В настоящей рассылке будет излагаться теория и алгоритмы двумерной и трехмерной компьютерной графики. Планируется включить описание технологий OpenGL и DirectX, а также программирование шейдеров. Уроки раскрывают такие темы, как
- растеризация 2D примитивов;
- аффинные преобразования и их задание в матричной форме;
- кривые, способы их задания и построения;
- сплайны;
- построение трехмерных поверхностей;
- теория освещения;
- отсечение невидимых поверхностей;
- создание эффектов тумана, пыли, погоды;
- моделирование сложных объектов;
- основы анимации;
- обработка изображений;
- фрактальная графика;
Статистика
0 за неделю
Компьютерная графика c примерами на С++: Аффинное преобразование
Тема этого выпуска задание аффинного преобразования в матричной форме. Эта тема, по сути, является обобщением всего, что было сказано ранее. Определение. Преобразование плоскости называется аффинным , если оно взаимно однозначно; образом любой прямой является прямая. Преобразование называется взаимно однозначным , если разные точки переходят в разные; в каждую точку переходит какая-то точка. Прим. Более подробно про аффинные преобразования можно посмотреть на ru.wikibooks.org Однородные координаты Если рас...
Компьютерная графика c примерами на С++ Новости
Здравствуйте! Приношу свои извинения за задержку текущего выпуска. Я хочу рассмотреть такую интересную и важную тему, как 'Аффинное преобразование. Задание в матричной форме. Сейчас добавляю немного теории и определений для лучшего понимания материала. К тому же выпуск будет идти с объемным примером, реализующим теорию. Также попробуем более четко разобраться, какую форму матрицы использовать для преобразований. Ждите новый выпуск на следующих выходных ) Ведущий рассылки, Денис, cgraphics @ mail . ru ...
Компьютерная графика c примерами на С++ Поворот плоскости с помощью мыши
Перед тем, как перейти к довольно сложной теме, а именно, заданию аффинного преобразования в матричной форме рассмотрим следующий вопрос. Как поворачивать изображение с помощью мыши? Имеется пара точек M 0 ( x 0 , y 0 , M(x, y) - начальное и конечное положения мыши. По этим точкам нужно определить угол поворота плоскости. Как это сделать? Можно попытаться экспериментировать с формулами, но вскоре станет понятно, что надо учитывать не только относительные изменения координат delta_ x , delta_ y , но и их аб...
Компьютерная графика c примерами на С++ Поворот плоскости
Приветствую вас, уважаемые подписчики. Хочу презентовать всем читателем рассылки наш сайт: compgraphics.info . Там можно найти все предыдущие выпуски + исходные файлы всех примеров. Там есть несколько разделов и скоро они начнут наполняться информацией, касающейся теории 3D, фракталов и OpenGL. Заходите! Сегодня речь пойдет о поворотах плоскости. С плоскостью все получается относительно несложно. Если мы делаем поворот относительно начала координат, то для задания вращения используется один угол ( phi . Пр...
Компьютерная графика c примерами на С++ Вопросы и ответы
Привет! Как я и обещал, будет выпуск рассылки, посвященный вопросам и ответам. - Где можно найти предыдущие выпуски? Советую эту ссылку, т.к по ней вы найдете все с последними исправлениями и исходными кодами ко всем демонстрационным приложениям: http://compgraphics.info/2D.php http://subscribe.ru/archive/comp.soft.3d.cgs/ - По образованию я далек от программирования, и поэтому решить сложности с кодом интуитивно не получается. Не получилось, в частности, создать шаблон для рисования графики в одном из пер...
Компьютерная графика c примерами на С++ Логическая система координат
Здравствуйте! Я дико извиняюсь за такую долгую задержку! Я пытался прикрепить с выпуску исходные коды демонстрационного приложения и Subscribe.ru не пропустил выпуск. Обещаю следующий скорее, чем через неделю. Возможно вам показалось, что на протяжении предыдущих выпусков все было очень просто. Конечно! Ведь мы создали исключительно каркас нашего приложения, но при этом не сказали ни слова теории. Мы нарисовали треугольник, задав координаты его вершин. В какой системе координат мы взяли их? Правильный отве...
Компьютерная графика c примерами на С++: Система координат
Здравствуйте! Возможно вам показалось, что на протяжении предыдущих выпусков все было очень просто. Конечно! Ведь мы создали исключительно каркас нашего приложения, но при этом не сказали ни слова теории. Мы нарисовали треугольник, задав координаты его вершин. В какой системе координат мы взяли их? Правильный ответ, в оконной системе координат. Опишем основные недостатки такого подхода: при изменении размеров окна размер изображения остается прежним, тем самым нарушается логическая картина; неудобство зада...
Компьютерная графика c примерами на С++ Введение
Здравствуйте! Я рад, что нас стало больше, и можно перейти к более содержательной части курса. О содержании рассылки я рассказывал в самом первом выпуске, который вы можете легко найти в архиве. Тем не менее, я хочу ещё раз сказать, зачем нужно знание теории компьютерной графики. Несмотря на то, что существуют такие мощные средства, как DirectX, OpenGL, языки программирования шейдеров, для осуществления многих преобразований каких-либо стандартных средств не предусмотрено. В этом случае приходится брать ли...
Компьютерная графика шаблон Windows программы
Здравствуйте ! В предыдущий раз мы создали шаблон Windows программы. Теперь возникает законный вопрос, как нарисовать что-либо. В ближайших выпусках я буду рассказывать о системах координат и способах перехода из одной системы в другую. Так что пока нам не понадобится поточечный вывод объектов. О том, как реализовать его я расскажу позже. Нарисуем треугольник: Для этого создадим новый файл draw.cpp: #include <windows.h> void Draw(HDC hdc{ MoveToEx(hdc, 100, 100, NULL); LineTo(hdc, 150, 150); LineTo(h...
Компьютерная графика WinAPI шаблон
Здравствуйте! Как я говорил, изложение теории будет идти нога в ногу с практической реализацией. Поэтому для начала нам нужен шаблон, который позволит нам создавать различные наработки на его основе. #include <windows.h> const double PI = 3.141592653; LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); char szClassName] = "CG Template" ; //////////////////////////////////////////////////////////////////////////////////////////////////// int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hP...