Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/13: Рейтинг темы: голосов - 13, средняя оценка - 4.77
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021

Посоветуйте книги по примитивной графике

29.07.2009, 07:23. Показов 2498. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может кто встречал книги или лучше электронные статьи или учебники, где подробно описаны техники рисования в окне?
Очень много вопросов возникает, а ответов попадается очень мало, в основном стандартные примеры.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2009, 07:23
Ответы с готовыми решениями:

посоветуйте книги по математике и физике за 5-11 И еше книги по матиматике для программиста?(типа алгоритмы,мат анализ и тд)
Народ всем привет у меня к вам вопрос вот я хочу стать программистом на C++ И мне требуется знания математики и физики(хочу проги писать,и...

Книги по компьютерной графике
Порекомендуйте книгу на русском в которой описываются векторы матрицы кватернионы,описывается как их использовать в компьютерной графике...

Книги по Java 3D графике для начинающих
Здравствуйте всем. Подскажите, пожлуйста, где можно скачать бесплатно кгиги по Java 3D графике для начинающих. Скиньте ссылку, если...

8
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
29.07.2009, 10:11
есть яндекс, есть гугль, есть поиск на этом форуме.
материалов - вагон.
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
29.07.2009, 11:06  [ТС]
Цитата Сообщение от Patch Посмотреть сообщение
есть яндекс, есть гугль, есть поиск на этом форуме.
материалов - вагон.
Вагон, но все не то, если бы мне нужно было рисовать десяток обьектов, то и так бы нормально было бы, а мне нужно рисовать сотни, причем постоянно. Логику некоторых вещей я понять не могу, а это нужно хотя бы для оптимизации кода.

Добавлено через 13 минут 28 секунд
Может быть вы сможете объяснить такую вещь:

Масштабируется битмап

C++
1
2
3
4
5
6
7
8
newbitmap->LoadBitmap(sost);
oldbitmap=MemDC.SelectObject(newbitmap);
HBITMAP mdcScaled= CreateCompatibleBitmap(MemDC,21*Scale,19*Scale);
SelectObject( MemDC2,mdcScaled);
StretchBlt(MemDC2,0,0,21*Scale,19*Scale,MemDC,0,0,21,19,SRCCOPY);
MemDC.SelectObject(oldbitmap);
newbitmap->DeleteObject();
DeleteObject(mdcScaled);
Может быть коряво, но если сможете предложить лучше алгоритм, буду благодарен.

Так вот, HBITMAP mdcScaled= CreateCompatibleBitmap(MemDC,21*Scale,19 *Scale) ,
как я понимаю, связывает контекст с битмапом.
Почему если эту функцию перенести в начало, смасштабированный битмап не будет выводиться? будет выводиться только черный квадрат.
0
MCSD: APP BUILDER
 Аватар для IT_Exp
8795 / 1074 / 104
Регистрация: 17.06.2006
Сообщений: 32,602
29.07.2009, 11:09
Фень Юань "Программирование графики для Windows"
1
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
29.07.2009, 12:15
Цитата Сообщение от vitaly1981 Посмотреть сообщение
Вагон, но все не то, если бы мне нужно было рисовать десяток обьектов, то и так бы нормально было бы, а мне нужно рисовать сотни, причем постоянно. Логику некоторых вещей я понять не могу, а это нужно хотя бы для оптимизации кода.
видел такие книги, но в них нет ничего, до чего я не дошел бы своим умом за полчаса размышлений.
книги ведь не гении пишут... такие-же тормоза, как и все.
так что, быстрее получается посидеть и подумать.

рисовать сотни объектов через MemDC - не есть гуд.
процессор загрузишь, а эффект будет чутошный.
правильно было бы сделать объекты через графический процессор.

но для этого нужна совсем другая литература, и другая постановка задачи.
0
556 / 510 / 25
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
29.07.2009, 22:36
как-то все в кучу в этом коде замусолено. попробуем поразбираться:

C++
1
2
3
4
5
6
7
8
9
newbitmap->LoadBitmap(sost);
 
делаю вывод, что newbitmap - это CBitmap*
 
oldbitmap=MemDC.SelectObject(newbitmap);
 
соотв. oldbitmap - CBitmap*, MemDC - типа CDC
 
HBITMAP mdcScaled= CreateCompatibleBitmap(MemDC,21*Scale,19*Scale);
вот с этим непонятка: или вызывается ф-я API W32, (т.к. принимает как аргумент типа CDC, MFC класс), но тогда почему возвращаемое значение (CDC*) присваивается переменной типа HBITMAP?

...

я бы не замешивал MFC и Win32. а если бы замешивал, не надеялся на то, что кастинг по умолчанию работает исправно (а есть ли он вообще? аккуратно ли превращаются брюки типа CDC при вызове CreateCompatibleBitmap() в изящные шорты типа CDC*?).
1
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
30.07.2009, 06:33  [ТС]
А ведь точно.... не обратил внимание....а ведь даже работало....

Добавлено через 11 минут 24 секунды
Переделал так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
float Scale=1.3;
CClientDC dc(this); 
CDC MemDC2;if(MemDC2.CreateCompatibleDC(&dc)==0) return 0;
CDC MemDC;if(MemDC.CreateCompatibleDC(&dc)==0) return 0;
CBitmap* newbitmap=new CBitmap;
CBitmap* oldbitmap;
CBitmap* oldbitmap2;
CBitmap* mdcScaled=new CBitmap;
 
newbitmap->LoadBitmap(Analiz2(line,block));
oldbitmap=MemDC.SelectObject(newbitmap);
mdcScaled->CreateCompatibleBitmap(&MemDC,21*Scale,28*Scale);
oldbitmap2=MemDC2.SelectObject(mdcScaled);
MemDC2.StretchBlt(0,0,21*Scale,28*Scale,&MemDC,0,0,21,28,SRCCOPY);
MemDC.SelectObject(oldbitmap);
MemDC2.SelectObject(oldbitmap2);
newbitmap->DeleteObject();
mdcScaled->DeleteObject();
Все равно не могу понять почему если
mdcScaled->CreateCompatibleBitmap(&MemDC,21*Scale, 28*Scale);
заменю на
mdcScaled->CreateCompatibleBitmap(&MemDC2,21*Scale ,28*Scale);
то работать не будет, хотя помоему, так логичнее....
Может можно это как то упростить?
0
1 / 1 / 0
Регистрация: 07.10.2009
Сообщений: 9
07.10.2009, 11:55
DirectX 9 с управляемым кодом. Программирование игр и графика
0
Эксперт по математике/физике
 Аватар для Том Ардер
4218 / 3418 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
07.10.2009, 16:56
А.Поляков, В.Брусенцев "Методы и алгоритмы компьютерной графики в примерах на Visual C++"

http://mirknig.com/

Добавлено через 15 минут
Программирование графики для Windows
Автор: Фень Юань
http://mirknig.com/knigi/11811... ndows.html

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.10.2009, 16:56
Помогаю со студенческими работами здесь

Книги, статьи, сайты по ООП графике
Доброго времени суток, форумчане! Посоветуйте, пожалуйста, сайт или книгу, на русском языке, где исчерпывающе и доходчиво объяснено,...

Не получается воспроизвести пример из книги по графике на С
// draw move initgr как неопознанные, можно как-нибудь запустить данный код? Пользуюсь Visual Studio проект Win 32 main() { ...

Посоветуйте книгу по графике в C++ Windows Form
Здравствуйте. Хочу создать очень хороший графический редактор на C++. Какие книги могут мне в этом помочь?

Посоветуйте Chart контрол. Нужно удалять точки на графике
Доброго времени суток. Есть данные, по которым строится график. Задача мышкой выделить часть графика, удалить ее - обновить данные. ...

Посоветуйте книги по C++
Я уже хорошо знаю PHP, но вот решил перейти на C++. Я с другом договорились создавать игры. Я программист он художник. Мне как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru