Вход



    НОВОЕ В БИБЛИОТЕКЕ
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Дифференциальные уравнен...
● Составление дифференциал...
● Составление дифференциал...
● Производные высших поряд...
● Производные высших поряд...
● Дифференцирование тригон...
● Дифференцирование алгебр...
● Дифференцирование алгебр...

    НОВЫЕ ФАЙЛЫ
● Sm графики функций (beta...
● Graf_builder
● Учимся считать
● Мобильный справочник по ...
● Уникальный калькулятор
● Программа для построения...
● «Новости ПриМата» для An...
● Schedule Builder Light 2...
● График
● Sm Калькулятор


    ЛУЧШИЕ ПУБЛИКАЦИИ
● Бухаете? Тогда я иду к в...
● Считаем сумму ряда
● Новый вирус - три десятк...
● Получить кнопку ТИЦ и Pa...
● Программирование под And...
● Матричный калькулятор (3...
● Пара интересных задач
● Небольшая забава для про...
● Немного юмора для матема...
● Продержись восемнадцать ...

    ЛУЧШИЕ МАТЕРИАЛЫ
● Высшая математика. Лекци...
● Высшая математика. Лекци...
● Умножение матриц (Паскал...
● Высшая Математика. Лекци...
● Высшая математика. Лекци...
● Высшая Математика. Лекци...
● Темы курсовых работ (укр...
● Пример использования мно...
● Теория графов плюс бонус...
● Сортировка Хоара (быстра...

    10 ЛУЧШИХ ФАЙЛОВ
● Эконометрика
● Таблица производных
● Шпаргалка по высшей мате...
● Математические формулы
● Гмурман. Теория вероятно...
● Таблица интегралов
● Таблицы неопределенных и...
● Программирование на язык...
● Программирование на Си (...
● Программирование на язык...


     
 
Карта программистов

Конструктор информеров



На сайте всего: 5
Посетителей: 5
Пользователей: 0

Создать сайт бесплатно
 БИБЛИОТЕКА УЧЕБНЫХ МАТЕРИАЛОВ 

ГЛАВНАЯ » БИБЛИОТЕКА » ФАКУЛЬТАТИВ » IT-ТЕХНОЛОГИИ [ ДОБАВИТЬ ]

OpenGL: Каким обpазом выбиpать pазмеp шpифта
Все что я пpидyмал, это юзать glScale(), но в этом слyчае полyчаем плохое качество (по сpавнению с той-же Воpдой) пpи малом pазмеpе символов. Вот часть работающего примера на Си (переведенного мною на Паскаль (АА)).

Code:

procedure GLSetupRC( pData: Pointer )

//void GLSetupRC(void *pData)

//{

var

// HDC hDC;

hDC: HDC;

// HFONT hFont;

hFont: HFONT;

// GLYPHMETRICSFLOAT agmf[128];

agmf: array [0..127] of GLYPHMETRICSFLOAT;

// LOGFONT logfont;

logfont: LOGFONT;

begin

logfont.lfHeight := -10;

logfont.lfWidth := 0;

logfont.lfEscapement := 0;

logfont.lfOrientation := 0;

logfont.lfWeight := FW_BOLD;

logfont.lfItalic := FALSE;

logfont.lfUnderline := FALSE;

logfont.lfStrikeOut := FALSE;

logfont.lfCharSet := ANSI_CHARSET;

logfont.lfOutPrecision := OUT_DEFAULT_PRECIS;

logfont.lfClipPrecision := CLIP_DEFAULT_PRECIS;

logfont.lfQuality := DEFAULT_QUALITY;

logfont.lfPitchAndFamily := DEFAULT_PITCH;

//strcpy(logfont.lfFaceName,"Arial");

// strcpy(logfont.lfFaceName,"Decor");

StrPCopy( logfont.lfFaceName, 'Decor' );

glDepthFunc(GL_LESS);

glEnable(GL_DEPTH_TEST); // Hidden surface removal

glFrontFace(GL_CCW); // Counter clock-wise polygons face out

glEnable(GL_CULL_FACE); // Do not calculate insides

glShadeModel(GL_SMOOTH); // Smooth shading

glEnable(GL_AUTO_NORMAL);

glEnable(GL_NORMALIZE);

glEnable(GL_COLOR_MATERIAL);

glClearColor(0.0, 0.0, 0.0, 1.0 );

glEnable(GL_LIGHTING);

glLightfv(GL_LIGHT0,GL_AMBIENT,ambientLight);

glLightfv(GL_LIGHT0,GL_DIFFUSE,diffuseLight);

glLightfv(GL_LIGHT0,GL_SPECULAR,specular);

glLightfv(GL_LIGHT0,GL_POSITION,lightPos);

glEnable(GL_LIGHT0);

glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);

glMaterialfv(GL_FRONT, GL_SPECULAR,specular);

glMateriali(GL_FRONT,GL_SHININESS,100);

// Blue 3D Text

glRGB(0, 0, 255);

// Select the font into the DC

hDC := (HDC)pData;

// hFont = CreateFontIndirect(&logfont);

hFont := CreateFontIndirect( Addr(logfont) );

SelectObject (hDC, hFont);

//create display lists for glyphs 0 through 255 with 0.3 extrusion

// and default deviation. The display list numbering starts at 1000

// (it could be any number).

// if(!wglUseFontOutlines(hDC, 0, 128, 1000, 0., 0.3,

// WGL_FONT_POLYGONS, agmf))

if not wglUseFontOutlines(hDC, 0, 128, 1000, 0., 0.3,

//> ``` - это тебе поможет

//> Выводить текст можно в любым масштабе

WGL_FONT_POLYGONS, agmf) then

Windows.MessageBox(nil,'Could not create Font Outlines',

'Error',MB_OK or MB_ICONSTOP);

// Delete the font now that we are done

DeleteObject(hFont);

//}

end;

// void GLRenderScene(void *pData)

procedure GLRenderScene(pData: Pointer);

begin

(* ... *)

// Draw 3D text

glListBase(1000);

glPushMatrix();

// Set up transformation to draw the string.

glTranslatef(-35.0, 0.0, -5.0);

glScalef(60.0, 60.0, 60.0);

glCallLists(3, GL_UNSIGNED_BYTE, 'Decor');

glPopMatrix(); // Clear the window with current clearing color

(* ... *)

end;

Автор: Garik Pozdeev

Источник: http://forum.vingrad.ru



Просмотров [ 418 ]  ●  01.02.10  ●   Рейтинг  [ 0% ]


Комментариев: [ 0 ]



  Ваше Имя  



   





Украинская Баннерная Сеть