Использование Win32 API для создания оконных приложений в операционной системе Windows XP. Подключение графической библиотеки Direct3D, каркасная модель куба при помощи простейшей микропрограммы, метод Ламберта и Фонга, учет времени синтеза кадра.
Лабораторные работы по курсу: Компьютерная графика Кафедра Автоматика и управление в технических системах Лабораторная работа №1 Создание простейшего оконного Win32 приложения Цель работы: Научиться использовать Win32 API для создания оконных приложений в операционной системе Windows XP (2000, Vista) в среде Microsoft Visual. Необходимое оборудование и ПО: персональный компьютер с установленной операционной системой (ОС) Windows XP (2000, Vista), оболочка Microsoft Visual C 2008 Express Edition. С точки зрения приложения, сообщение является уведомлением о том, что произошло некоторое событие, которое может требовать, а может и не требовать выполнения определенных действий. Точкой входа в оконное Win32 приложение созданное на языке С является функция WinMain() (_tWinMain). Ход выполнения Запустить среду разработки Microsoft Visual C Express Edition. В файле stdafx.h подключить необходимые библиотеки (см. приложение Б). ); return false; }// if( !hWnd ) ShowWindow( hWnd, nCmdShow ); UpdateWindow( hWnd ); return true;}LRESULT CALLBACK WndProc(HWND hWnd, UINT Message, WPARAM wParam, LPARAM lParam) {switch( Message ) {case WM_ACTIVATEAPP: {boActive = wParam == 1; break;} case WM_DESTROY: {PostQuitMessage(0); break;}default: return DefWindowProc( hWnd, Message, wParam, lParam ); }return 0;} };// namespace main int APIENTRY _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) {CoInitializeEx( 0, COINIT_MULTITHREADED ); main::RegisterClass( hInstance ); if( !main::InitInstance( hInstance, nCmdShow ) ) return -1; MSG msg; do{if( !PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) {continue;}// if( !PeekMessage( &msg, 0, 0, 0, PM_REMOVE ) ) TranslateMessage( &msg ); DispatchMessage( &msg ); }while( WM_QUIT != msg.message ); return (int) msg.wParam;} Лабораторная работа №2 Подключение библиотеки DirectX к Win32 приложению Цель работы: Ознакомиться с особенностями подключения и использования графической библиотеки Direct3D в приложениях Win32 Необходимое оборудование и ПО: установленный пакет DirectX SDK, лабораторная работа №1. Исходный код работы Добавить в файл stdafx.h: …#include #include #include #include #include Добавить в файл kg_lab.h: #pragma once #pragma warning ( disable:4100 ) #pragma comment( lib, d3d9.lib ) #pragma comment( lib, d3dx9.lib ) namespace main {extern HWND hWnd; extern bool boActive; …LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM ); }; // namespace main namespace directx {void FillParams(); bool InitDX(); void CloseDX(); void FlipPages(); void Invalidate(); void Restore(); bool TestAvailDev(); void Paint(); void Pump(); typedef D3DXVECTOR3 s_vector3; typedef D3DXVECTOR4 s_vector4; typedef D3DXMATRIX s_matrix; typedef WORD t_index; const float deg2rad = 3.14f / 180.f; const s_vector3 vec0 = s_vector3( 0.f, 0.f, 0.f ); const s_vector3 vec1 = s_vector3( 1.f, 1.f, 1.f ); struct s_vertex {s_vertex() {} s_vertex( const s_vector3& Pos_, const s_vector3& Norm_ = vec0 ) : Pos( Pos_ ), Norm( Norm_ ) {} s_vector3 Pos; s_vector3 Norm; }; extern D3DPRESENT_PARAMETERS PP; }; // namespace directx Добавить в файл kg_lab.cpp (в функцию InitInstance): …if( !hWnd ) {message_box_( LНевозможно создать окно приложения!.
Вы можете ЗАГРУЗИТЬ и ПОВЫСИТЬ уникальность своей работы