|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
29.09.2009, 16:58 | #1 |
Регистрация: 29.09.2009
Сообщений: 3
|
Opengl
После введение текста пользоватилем, текст должен двигатса вверх, вниз и вопще двигатса в любые стороны автоматически (как стандартная заставка WindowsXP). Также он должен крутитса и... Вопщем двигатса как ему угодно. Зарание говорю спасибо!
|
29.09.2009, 17:00 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
наработки?
это на ГЛ надо? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
29.09.2009, 17:05 | #3 |
Регистрация: 29.09.2009
Сообщений: 3
|
меня интересует исходный код. код на Delphi
|
29.09.2009, 17:11 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
у вас наработки какиенить есть свои?
иль вам сразу все готовое подавай? http://programmersforum.ru/rules.php http://programmersforum.ru/showthread.php?t=34061 почитайте. иначе во фриланс. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
29.09.2009, 17:23 | #5 |
Регистрация: 29.09.2009
Сообщений: 3
|
Вот пример программи. Только здесь текст не вводмтса пользовотилем. Вот:
program OutText; uses Windows, Messages, OpenGL; const AppName = 'GLFont'; GLF_START_LIST = 1000; id_Timer = 100; Litera : PChar = 'Олександр Рапатий'; var Window : HWnd; Message : TMsg; WindowClass : TWndClass; dc : HDC; hrc : HGLRC; ps : TPAINTSTRUCT; gldAspect : GLdouble ; glnWidth, glnHeight : GLsizei; lf : TLOGFONT; hFontNew, hOldFont : HFONT; agmf : Array [0..255] of TGLYPHMETRICSFLOAT ; // для Delphi 4 : {agmf : Array [0..255] of GLYPHMETRICSFLOAT;} AngY, AngX, AngZ : GLfloat; radius : GLfloat; maxObjectSize, aspect : GLfloat; near_plane, far_plane : GLdouble; lpMsgBuf: PChar; {$I SetDCPixelFormat} procedure DrawScene; begin glClear (GL_COLOR_BUFFER_BIT ); glLoadIdentity; glTranslatef(0.0, 0.0, -radius); glRotatef(AngX, 1.0, 0.0, 0.0); glRotatef(AngY, 0.0, 1.0, 0.0); glRotatef(AngZ, 0.0, 0.0, 1.0); glScalef(0.3, 0.3, 0.3); glListBase(GLF_START_LIST); glCallLists(17, GL_UNSIGNED_BYTE, Litera); glFlush; end; function WindowProc (Window : HWnd; Message, WParam : Word; LParam : LongInt) : LongInt; export; stdcall; Begin WindowProc := 0; case Message of wm_Destroy : begin wglDeleteContext (hrc); KillTimer(Window, id_Timer); glDeleteLists(GLF_START_LIST, 256); PostQuitMessage (0); Exit; end; wm_Create: begin AngY := 5.0; AngX := 1.0; AngZ := 3.0; near_plane := 2.0; far_plane := -2.0; maxObjectSize := 2.0; radius := near_plane + maxObjectSize/2.0; dc := GetDC (Window); SetDCPixelFormat (dc); hrc := wglCreateContext (dc); wglMakeCurrent(dc, hrc); glColor3f(0, 0, 1.0); // цвет рисования - синий // подготовка вывода текста FillChar(lf, SizeOf(lf), 0); lf.lfHeight := -28 ; lf.lfWeight := FW_NORMAL ; lf.lfCharSet := ANSI_CHARSET ; lf.lfOutPrecision := OUT_DEFAULT_PRECIS ; lf.lfClipPrecision := CLIP_DEFAULT_PRECIS ; lf.lfQuality := DEFAULT_QUALITY ; lf.lfPitchAndFamily := FF_DONTCARE OR DEFAULT_PITCH; lstrcpy (lf.lfFaceName, 'Arial') ; hFontNew := CreateFontIndirect(lf); hOldFont := SelectObject(DC,hFontNew); wglUseFontOutlines(DC, 0, 255, GLF_START_LIST, 0.0, 0.15, WGL_FONT_POLYGONS, @agmf); DeleteObject(SelectObject(DC,hOldFo nt)); DeleteObject(SelectObject(DC,hFontN ew)); SetTimer (Window, id_Timer, 50, nil); // Установка таймера end; wm_Size: begin glnWidth := LoWord (lParam); glnHeight := HiWord (lParam); gldAspect := glnWidth / glnHeight; glMatrixMode(GL_PROJECTION); glLoadIdentity; gluPerspective(40.0,gldAspect,1.0,4 .0); glViewport(0, 0, glnWidth, glnHeight); glMatrixMode (GL_MODELVIEW); end; wm_Timer: begin AngX := AngX + 3.0; AngY := AngY + 3.0; AngZ := AngZ + 1.0; InvalidateRect(Window, nil, False); end; wm_Paint: DrawScene; end; // case WindowProc := DefWindowProc (Window, Message, WParam, LParam); End; Begin With WindowClass do begin Style := cs_HRedraw or cs_VRedraw; lpfnWndProc := @WindowProc; cbClsExtra := 0; cbWndExtra := 0; hInstance := 0; hCursor := LoadCursor (0, idc_Arrow); lpszClassName := AppName; end; If RegisterClass (WindowClass) = 0 then Halt (255); Window := CreateWindow (AppName, AppName, ws_OverLappedWindow or ws_ClipChildren or ws_ClipSiBlings, // обязательно для OpenGL cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault, HWND_DESKTOP, 0, HInstance, nil); ShowWindow (Window, CmdShow); UpdateWindow (Window); While GetMessage (Message, 0, 0, 0) do begin TranslateMessage (Message); DispatchMessage (Message); end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
3D и OpenGl | Dj_smart | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 12 | 29.10.2017 11:31 |
opengl | alhon | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 2 | 10.10.2013 15:02 |
OpenGL | Д'якон | Компьютерное железо | 5 | 31.01.2009 22:48 |
OpenGL | Witaliy | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 1 | 01.05.2008 21:05 |
OpenGL | prizrak1390 | Свободное общение | 2 | 07.04.2008 13:43 |