LINUX.ORG.RU

Программирование вращающихся кубиков и прочих гаек


0

0

Страшный оффтопик, но уж, извините, безвыходное положение. Задали, понимаешь, программировать сабж. Да без всяких честных библиотек, а самим писать все 3д преобразования. В связи с этим вопрос: какие-н. ссылки, где есть хорошие книжки в *.тхт по основам программирования графики (а то сунулся по поиску, везде один DirectХ), примеры программ (желательно на С, но сгодится и Паскаль), вобщем, понятно). Спасибо.


Вот нашел, очень часто поминаются: "Вычислительная геометрия и компьютерная графика на С++" Майкл Ласло, "Программирование графики" Майкл Абраш, но самих текстов нет. Если у кого-нибудь есть или знает где взять, будь другом, отзовись.

shumer
() автор топика

Искать тебе DEMO.DESIGN FAQ. Ну и, конечно же, учебник по аналитической геометрии и линейной алгебре (рекомендую Беклемишева).

Antichrist
()
Ответ на: комментарий от Antichrist

Да, нашел 'demo.design 3d faq', не очень подробно, но уже кое-что. Спасибо.

shumer
() автор топика

Первый раз пришлось переносить программу написанную под Windows на Linux, не думал, что возникнит столько проблем! Первым делом я переопределил функции и стандартные типы, не поддерживаемые в Linux: #define AnsiString string; функции обработки имен файлов, получающие параметрами AnsiString в .h файле, заинклудил его ко всем .h файлам. Полученная программа откомпилирована под Borland Builder C++ 5 в ANSI и прекрасно работает!!!! Под Linux творятся чудеса: 1. Все компилируется под g++ 2. не работает!!! 3. с помощью Emacs + gdb выясняется что игнорируется (не вызывается вообще) конструктор статической переменной класса. Breakpoin на эту функцию класса ставится, но отладчик туда не входит. В статической переменной - указатель на объект (т. е. глобальная переменная) память выделяется оператором new <Класс>. Причем для других статических переменных классов такой проблемы нет. 4. программа ухитряется зациклиться при передаче параметра типа AnsiString (string после переопределения) в другой конструктор! Причем, breakpoint до вызова останавливает выполнение, а breakpoint внутри конструктора ставится, но gdb виснет до него. 5. Не знаю как в частях программы работающих хорошо, но в этих функциях GDB неверно показывает строку выполнения (в Emacs)- на две - три строки ниже, чем фактически находится процесс. Это видно по инициализации переменных. Хочу подчеркнуть, что под Windows компилируются те же файлы за исключением, что функция access()(проверка прав доступа) берется из библиотеки io.h а не из unistd.h и все благополучно работает!

anonymous
()

Ключевое слово здесь - "Borland C++ Builder 5". Увы и ах. Он в некоторых частях сильно отошёл от сишных канонов, поэтому на него при переносе равняться не след. А "AnsiString" вообще, если не ошибаюсь, появился для совместимости с дельфями.

А воообще, я так понял, сообщение не туда попало...

hobbit ★★★★★
()
Ответ на: комментарий от anonymous

Наблюдения конечно интересные, но к чему они? Лучше б с книжками, про которые я говорил, помогли)) Правда в магазинах тоже кое-что есть. Сходил недавно на разведку, обнаружил "Программирование графики на примере OpenGL" (или близко к этому). Хорошая книжка, много теории, один недостаток - дорогая). Но, видимо, все равно куплю. Насчет проги: может проще было через Kylix попробовать??

shumer
() автор топика
Ответ на: комментарий от Antichrist

>Искать тебе DEMO.DESIGN FAQ. Ну и, конечно же, учебник по аналитической геометрии и линейной алгебре (рекомендую Беклемишева).

Видал я этого Беклемишева ;-) (я имею в виду автора а не книгу), слава богу ни разу к нему на эезаменах не попадал отвечать... ;-)))

sseREGa
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.