Простые 3-х мерные построения: куб

Текст программы построен на основе предыдущей программы. Новая используемая команда - glPolygonMode (щелкните по интересующей Вас команде в тексте программы и в нижней части окна получите подробную справку по этой команде).


При запуске программы последовательно происходит 3 действия:

1. Cоздание формы - OnCreate, в обработчике этого события находятся следующие строки - SetDCPixelFormat(Canvas.Handle) - задаем формат пикселя обращаясь к описанной в этом же модуле пользовательской процедуре - procedure SetDCPixelFormat(hdc : HDC) - не забываем посмотреть всю помощь щелкая мышью по гиперссылкам-командам OpenGL с интересующими Вас командами. Далее создаем контекст воспроизведения - wglCreateContext (Canvas.Handle).
2. Событие-перерисовка OnPaint отличается от предыдущих программ не значительно - поэтому не будем повторятся - рассмотрим только новую команду - glPolygonMode. Команда задает режим вывода полигона (в нашем случае обыкновенных плоскостей из которых построен 3D куб). Для закрепления новых знаний попробуйте изменять различные параметры. Сразу предвижу вопрос - что-то куб как-то неправильно себя ведет - то он вроде как прозрачный и видны противоположные грани куба (хотя куб цельный и непрозрачный), то одна грань перекрывает другую, а то видна плоскость которой видно не должно быть по логике вещей и т.п. Ответ на этот вопрос дает следующий урок.
3. При корректном завершении работы программы OnDestroy происходит удаление контекста воспроизведения - wglDeleteContext(hrc).
к оглавлению к оглавлению


Для переноса кода программы в Delphi необходимо выполнить следующие действия:

1 способ (продвинутый):
1. Сохранить текст программы под любым именем в формате TXT - Программа / Сохранить код программы - в выпадающем списке диалога "Тип файла" выбрать "Текстовый файл (*.txt)".
2. Открыть свои новый текстовый файл в любом редакторе и скопировать весь текст в буфер обмена.
3. Запустить Delphi и начать новый проект - все элементы имеют свои названия по умолчанию, поэтому Вам не следует изменять их - это важно.
4. Перейти на вкладку проекта Events и выполнить двойной щелчок в полях OnCreate, OnDestroy и OnPaint. Так же необходимо добавить 2 скроллера в любое место формы - панель инструментов Standart\ScrollBar и дважды щелкнуть по каждому скроллеру.
5. Перейти к тексту программы Unit1, стереть его весь и на его место вставить текст из буфера обмена, можно воспользоваться комбинацией клавиш Ctrl+V.
6. Запустить Ваш новый проект - F9.

2 способ (быстрый):
1. Создать новую папку - здесь будет лежать Ваш новый проект. Например - PR1.
2. Из папки Book3D\MY_KOD скопировать в Вашу новую папку PR1 содержимое папки N13-16 (код для уроков с 13 по 16).
3. Сохранить текст программы под именем Unit1 в формате TXT в PR1 - Программа / Сохранить код программы - в выпадающем списке диалога "Тип файла" выбрать "Текстовый файл (*.txt)".
4. Переименовать файл Unit1.txt в Unit1.pas - на вопрос "Заменить файл" - "ОК".
5. Запустить файл Project1.dpr из PR1 или запустить Delphi и открыть проект из PR1 - Project1.dpr.
6. Запустить Ваш новый проект - F9.

Если все сделали правильно - Вы получите тот же результат, что и в Book3D-редакторе.
к оглавлению к оглавлению