Aktualizacja: 23.06.2005  Wersja: 0.4.48
Szukaj ::..
Temat ::..

..:: HOME ::..

  ::..:: INTERNETOWY SERWIS PROGRAMISTYCZNY ::..::

 

 

TURTORIAL 4
Fonty bitmapowe

Po stworzeniu i odpowiednim wywoływaniu sceny Menu jednym ze sposobów na napisanie czegokolwiek na tak powstałej scenie jest użycie fontów bitmapowych lub wy?wietlenie bitmapy z odpowiednio stworzonymi napisami w tej scenie.
Na początek będzie potrzebne stworzenie dodatkowych zmiennych pomocniczych. 
Jedną z takich zmiennych będzie zmienna typu Gluint, która będzie przechowywała numer pierwszego wy?wietlenia z utworzonej listy. Zmienną tą nazwijmy baza. Znak ?A? jest 65 na tej li?cie,?B? jest 66 zatem można okre?lić, że na naszej li?cie ?A? okre?lone jest jako baza+65 dla wybranej czcionki. 

//deklaracja zmiennej pomocniczej baza
Gluint baza; 

Kolejnym etapem jest napisanie funkcji służącej do stworzenia faktycznej czcionki. Funkcję taką nazwiemy BudujCzcionke. Należy zadeklarować dodatkowe zmienne typu HFONT powiadamiające system Windows o zamiarach manipulacji czcionkami oraz umożliwiające nam przechowanie bezpiecznie starej czcionki. W naszym będą to zmienne o nazwach czcionka i stara_czcionka.
Następnie należy zdefiniować warto?ć naszej zmiennej baza. Robimy to przez stworzenie przy pomocy glGenLists() listy wy?wietleń. W naszym przypadku stworzenie takiej listy 96 elementowej można zapisać w sposób następujący:

//funkcja BudujCzcionke
GLvoid BudujCzcionke(GLvoid) 
{
//zmienne pomocnicze
HFONT czcionka; 
HFONT stara_czcionka; 
//zdefiniowanie warto?ci zmiennej baza 
baza = glGenLists(96);
...
}

Aby stworzyć naszą czcionkę należy posłużyć się funkcją CreateFont(), której należy na początek zdefiniować odpowiednio szereg parametrów:
- pierwszym parametrem jest wysoko?ć czcionki w pikselach. Je?li znak tego parametru jest ujemny to system Windows znajduje wielko?ć czcionki według jej charakteru. Je?li natomiast znak ten jest dodatni to Windows bazuje na czcionce uzależnionej od wielko?ci komórki zgodnej z parametrem.
- drugi parametr to szeroko?ć komórki w której będzie zawierał się poszczególny znak danej czcionki. Ustawienie tego parametru na 0 traktowane jest jako ustawienie domy?lnych parametrów danej czcionki. 
- kolejny parametr to parametr okre?lający kąt obrotu czcionki 
- oraz parametr okre?lający orientacji kątowej
- kolejnym jednym z ważniejszych parametrów jest parametr okre?lający szeroko?ć czcionki. Warto?ć tego parametru zawiera się w granicach 0-1000 lub można użyć kilku warto?ci tego parametru zdefiniowanych pierwotnie. FW_DONTCARE to 0, FW_NORMAL to 400, FW_BOLD to 700 i FW_BLACK to 900. Większe warto?ć niż 1000 lub mniejsze niż 0 sprawiają, że czcionka staje się nieczytelna zatem ich używanie jest bezsensowne. 
- kolejne trzy parametry przybierają warto?ć true lub false i mówią nam odpowiednio o tym czy czcionka ma być pochylona, podkre?lona lub przekre?lona.
- następny parametr ustawia rodzaj typu charakteru który mamy zamiar używać. Jest bardzo dużo typów m.in. CHINESEBIG5_CHARSET, GREEK_CHARSET, RUSSIAN_CHARSET, DEFAULT_CHARSET, itd. Je?li zamierzasz pracować z czcionką Webdings lub Wingdings, musisz zadeklarować typ SYMBOL_CHARSET zamiast ANSI_CHARSET.
- parametr zewnętrznej precyzji pomaga okre?lić systemowi Windows wybór czcionki gdy istnieje kilka czcionek o tym samym charakterze. OUT_TT_PRECIS nakazuje systemowi Windows w takim przypadku wybór wersji TRUETYPE czcionki. Czcionki wersji TRUETYPE zawsze lepiej wyglądają zwłaszcza przy dużym powiększeniu czcionki. Deklarując OUT_TT_ONLY_PRECIS Windows zawsze szuka czcionki typu TRUETYPE.
- kolejny parametr precyzji clippingu najlepiej jest ustawić na warto?ć domy?lną czyli CLIP_DEFAULT_PRECIS.
- ważnym parametrem wpływającym na wygląd naszego fontu jest jako?ć wyj?ciowa. Parametr ten może przyjmować warto?ci PROOF, DRAFT, NONANTIALIASED, DEFAULT lub ANTIALIASED. Najlepiej prezentują się czcionki z parametrem ANTIALIASED, który jest równoznaczny w działaniu do Windowsowego wygładzania krawędzi czcionek dzięki czemu stają się one mniej postrzępione i przyjemniejsze dla oka. 
- kolejne parametry to parametr rodziny i ?smoły?. Warto?ci tych parametrów najlepiej ustawić na domy?lne FF_DONTCARE|DEFAULT_PITCH. Dla ?smoły? można okre?lić warto?ci: DEFAULT_PITCH, FIXED_PITCH i VARIABLE_PITCH, a dla rodziny FF_DECORATIVE, FF_MODERN, FF_ROMAN, FF_SCRIPT, FF_SWISS, FF_DONTCARE.
- ostatnim i bodajże najważniejszym parametrem jest faktyczna nazwa czcionki, którą można znale?ć w każdym systemie Windows. Zatem parametr okre?lamy jako ?Courier? lub inny jaki wpadł nam w gusta.
Przykładowy sposób użycia funkcji CreateFont() i okre?lenia wszystkich jej parametrów w programie zamieszczam poniżej.

czcionka = CreateFont( 
//wysoko?ć
-20, 
//szeroko?ć komórki 
0, 
//kąt obrotu czcionki 
0, 
//orientacja kątowa
0, 
//szeroko?ć czcionki
FW_BOLD, 
//pochylenie
FALSE, 
//podkre?lenie
FALSE, 
//przekre?lenie
FALSE, 
//typ charakteru 
ANSI_CHARSET, 
//parametr zewnętrznej precyzji
OUT_TT_PRECIS, 
//parametr precyzji clippingu
CLIP_DEFAULT_PRECIS, 
//jako?ć wyj?ciowa
ANTIALIASED_QUALITY, 
//rodzina i ?smoła?
FF_DONTCARE|DEFAULT_PITCH, 
//faktyczna nazwa czcionki
"Arial");

 


PP
...

TYP I NAZWA PLIKÓW  DO POBRANIA:
.....
...
...
FORMAT ARCHIWUM:
...
...

<-- TURTORIAL 3   TURTORIAL 5-->

 

Strona poświęcona jest technologiom programowania C++ z wykorzystaniem pakietu Visual C++, Pascal, DELPHI, C oraz technologiom tworzenia grafiki komputerowej z wykorzystaniem OpenGl i innych technik.
Wszelkie materiały zamieszczone zostały na stronie w celach dydaktycznych. Autor nie ponosi odpowiedzialności za treści materiałów oraz skutki wywołane ich wykorzystaniem.

(c) P.PARDEL 2001-2005 gg:1991389

Serwis znajduje się na serwerze www.friko.pl ..::..::..