
Grafika v jazyce C
Grafika v jazyce C
Budeme omezovat naši diskusi o Grafika v jazyce C na 16 bit C programování a MS DOS prostředí. V programu C v první řadě musíte inicializovat grafické ovladače v počítači. To se provádí pomocí initgraph metoda stanovená v graphics.h knihovně. V následujících několika stránkách budeme diskutovat graphics.h knihovnu v detailech. Důležité funkce v graphic.h knihovně bude discuees v detailů a vzorky programy budou poskytnuty ukázat sílu programovacího jazyka C.
Grafickém režimu Inicializace
V první řadě musíme zavolat initgraph funkci, která intialize grafický režim na počítači. initigraph mít následující prototyp.
neplatné initgraph (int * graphdriver daleko, daleko int * graphmode, char * Pokud pathtodriver); Initgraph inicializuje grafiku systému nakládání grafický ovladač od disku (nebo potvrdit zapsanou ovladače), pak uvedením systému do
grafika mode.Initgraph také resetuje všechna nastavení grafiky (barvy, paleta, současné postavení, výřezu, atd.), jejich výchozí hodnoty, pak se resetuje graphresult na 0.
* Graphdriver
Celé číslo, které určuje ovladač grafické karty mají být použity. Můžete si dát graphdriver hodnotu pomocí konstanty graphics_drivers výčtu typu.
* Graphmode
Celé číslo, které určuje počáteční grafický režim (pokud není * graphdriver = Detect). Je-li * graphdriver = zjistit, initgraph soupravy * graphmode na nejvyšší rozlišení dostupné u zjištěných řidiče. Můžete si dát * graphmode hodnotu pomocí konstanty graphics_modes výčtu typu.
* Pathtodriver
Určuje cestu k adresáři, kde initgraph hledá grafické ovladače (*. BGI) jako první.
- Pokud se nejste tam, initgraph hledá v aktuálním adresáři.
- Pokud pathtodriver NULL, musí řidič soubory v aktuálním adresáři.
* Graphdriver a * graphmode musí být nastavena na platnou graphics_drivers a graphics_mode hodnoty nebo dostanete neočekávané výsledky. (Výjimkou je graphdriver = objevit.)
Po výzvě k initgraph, je * graphdriver nastaven na aktuální ovladač grafické karty, a * graphmode je nastaven na aktuální grafický režim. Můžete říct initgraph používat konkrétní ovladač grafické karty a módu, nebo autodetekce připojené video adaptéru při spuštění a vybrat odpovídající ovladač. Pokud řeknete initgraph do rozpoznat, že hovorů detectgraph vybrat ovladač grafické karty a módu.
Obvykle initgraph načte ovladač grafické karty přidělením paměti pro řidiče (through _graphgetmem), pak zatížení appropriate. BGI soubor from disk.As alternativu k této dynamic loading systému může jste odkaz grafický soubor ovladače (nebo více z nich) přímo do spustitelného souboru programu.
Zde je ukázkový program, který inicializuje grafický režim v jazyce C.
# Include # include <graphics.h> <stdlib.h> # include # include <stdio.h> <conio.h> int main (void) (/ * dotaz auto detekce * / int gdriver = zjištění, gmode, ErrorCode; / * inicializace grafického režimu * / initgraph (& gdriver, & gmode, ""); / * čtení výsledek inicializace * / ErrorCode = graphresult (); if (ErrorCode! = grOk) / * chyba * / (printf ("Graphics Chyba:% s \ n ", grapherrormsg (ErrorCode)); printf (" Stiskněte libovolnou klávesu na zastávce: "); getch (); exit (1), / * vrátí se kód * error /) / * nakreslit linku * / řádek (0, 0, getmaxx (), getmaxy ()); / * vyčistit * / getch (); closegraph (); return 0;) Grafika programování v jazyce C se diskutuje ve stručnosti, aby nad výhledem na začátečníky.
/ * Ukázkový program k tomu kruh * / # Include <graphics.h> # Include <conio.h> main () ( int gd = zjistit, GM; initgraph (& gd, gm & ,""); / * inicializace grafického režimu * / kruh (150150100); getch (); closegraph (); / * obnovení originální obrazovky * / ) / * Konec programu * /
Za normálních okolností na obrazovce, která u zobrazení v DOS je v textovém režimu, což znamená, že je určen pro text. A pro grafické U potřeba k inicializaci grafického režimu. A aby k tomu došlo u potřebu zahrnout graphics.h?.
kružnice (souřadnice x, y souřadnice, radius); Kruh Příkaz má souřadnice x, což znamená, svislé osy a Y souřadnice, což znamená, vodorovné osy. A poslední je poloměr kruhu. closegraph ();
Pomocí této funkce obrazovce bude stále v grafickém režimu, a když u ven, aby se u DOS uvidí jiný displej, který není v textovém režimu.
/ * Program k tomu prostor s hvězdami * / # Include <graphics.h> main () ( int gd = zjistit, GM; int i, x, y; initgraph (& gd, gm & ,""); linka (0,0,640,0); linka (0,0,0,480); linka (639,0,639,480); linka (639,479,0,479); pro (i = 0; i <= 1000; i + +) ( x = rand ()% 639; y = rand ()% 480; putpixel (x, y, 15); ) getch (); closegraph (); ) / * Konec programu * /
/ * Zde vzorek program pro ilustraci, jak používat bary, které se používají pro vizuální statistiky * / # Include <graphics.h> main () ( int gd = zjištění, GM, Maxx, maxy, x, y, tlačítko; initgraph (& gd, gm & ,""); linka (80150200150); linka (80,150,80,50); settextstyle (1, HORIZ_DIR, 1); outtextxy (100.153, "<-X osa"); settextstyle (1, VERT_DIR, 1); outtextxy (60,50, "<-Y osa"); bar (100100120150); bar (130120150150); getch (); closegraph (); )
Stránky: [Page - 1] [Page - 2] [Strana - 3] [Page - 4]
Štítky: C programování , C + + programování , grafika
Stejně jako co vidíte?
Staňte se jedním z stálí upsáním! Budete jako první vědět, kdy budeme přidávat další skvělá místa právě takhle. Připojte se do buď RSS nebo svářeč dnes!
Existuje 137 Komentáře k tomuto příspěvku. Můžete sledovat všechny odezvy na tento vstup pomocí RSS 2.0 feed . Můžete přeskočit na konec a zanechat reakci , nebo trackback z vašich vlastních stránek.



































Potřebuji, aby se programování, které funguje jako hlasovací systém ... počítat hlasy ... a vypočítává skóre pro finalista a jejich zobrazení v datové textového souboru ... pomocí tříd a objektů Může mi někdo pomoct ...
/ / Toto je hra kříž a nic (Zero Katta) v C + +.
neplatné show_game_box ();
char m [3] [3];
void main ()
(
int p, q;
char ANS;
cout <<"\ t \ tCROSS & slovem NOUGHT GAME \ n";
dělat
(
na (p = 1, p <= 3; p + +)
(
pro (q = 1; q <= 3; q + +)
(
m [p] [q ]='';
)
)
int i, j, součet = 0;
while (suma <10)
(
if (součet == 0)
show_game_box ();
cout <<"\ n \ n \ nPlayer 1 is'0 '\ n";
cout <<"Hráč 1 je zase \ n";
cout <> i;
cout <> j;
for (; (i> 3) | | (j <1 )||(' X '== m [i] [j ])||(' 0' == m [i] [j]);)
(
cout <<"Promiň, které jste zadali nesprávnou volbou \ n";
cout <<"Zadejte volbu znovu \ n";
cout <> i;
cout <> j;
)
m [i] [j] = '0 ';
součet + +;
show_game_box ();
if ((m [1] [1] == 0')&&( m [1] [1] == m [1] [2 ])&&( m [1] [1] == m [1] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [2] [1] == 0')&&( m [2] [1] == m [2] [2 ])&&( m [2] [1] == m [2] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [3] [1] == 0')&&( m [3] [1] == m [3] [2 ])&&( m [3] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [1] [1] == 0')&&( m [1] [1] == m [2] [2 ])&&( m [1] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [1] [3] == 0')&&( m [1] [3] == m [2] [2 ])&&( m [1] [1] == m [3] [1]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [1] [1] == 0')&&( m [1] [1] == m [2] [1 ])&&( m [1] [1] == m [3] [1]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [1] [2] == 0')&&( m [1] [2] == m [2] [2 ])&&( m [1] [2] == m [3] [2]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if ((m [1] [3] == 0')&&( m [1] [3] == m [2] [3 ])&&( m [1] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 1 vyhrává hru \ n";
break;
)
if (součet == 9)
(
cout <<"\ t \ tHURRAY !!!!! hra končí \ n";
cout <<"\ t \ TNO vyhrává \ n";
cout <<"hra je remíza \ n";
break;
)
cout <<"\ n \ n \ nPlayer 2 is'X '\ n";
cout <<"Hráč 2 je zase \ n";
cout <> i;
cout <> j;
for (; (i> 3) | | (j <1 )||(' X '== m [i] [j ])||(' 0' == m [i] [j]);)
(
cout <<"Promiň, které jste zadali nesprávnou volbou \ n";
cout <<"Zadejte volbu znovu \ n";
cout <> i;
cout <> j;
)
m [i] [j] = 'X';
součet + +;
show_game_box ();
if ((m [1] [1] == 'X')&&( m [1] [1] == m [1] [2 ])&&( m [1] [1] == m [1] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [2] [1] == 'X')&&( m [2] [1] == m [2] [2 ])&&( m [2] [1] == m [2] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [3] [1] == 'X')&&( m [3] [1] == m [3] [2 ])&&( m [3] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [1] [1] == 'X')&&( m [1] [1] == m [2] [2 ])&&( m [1] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [1] [3] == 'X')&&( m [1] [3] == m [2] [2 ])&&( m [1] [1] == m [3] [1]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [1] [1] == 'X')&&( m [1] [1] == m [2] [1 ])&&( m [1] [1] == m [3] [1]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [1] [2] == 'X')&&( m [1] [2] == m [2] [2 ])&&( m [1] [2] == m [3] [2]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if ((m [1] [3] == 'X')&&( m [1] [3] == m [2] [3 ])&&( m [1] [1] == m [3] [3]))
(
cout <<"Gratuluji !!!!!!!!!! \ n";
cout <<"Hráč 2 vyhrává hru \ n";
break;
)
if (součet == 9)
(
cout <<"\ t \ tHURRAY hra končí \ n";
cout <<"\ t \ TNO vyhrává \ n";
cout <<"\ t \ oO hry byly \ n";
break;
)
)
cout <> ANS;
) Zatímco ((ANS == 'y')||( ans ==' Y '));
systému ("PAUSE");
getch ();
)
neplatné show_game_box ()
(
cout <<"\ n 1 2 3 \ n" <<endl;
cout <<"1" <<m [1] [1 ]<<"|"<< m [1] [2 ]<<"|"<< m [1] [3] <<endl;
cout <<"-|-|- \ n";
cout <<"2" <<m [2] [1 ]<<"|"<< m [2] [2 ]<<"|"<< m [2] [3] <<endl;
cout <<"-|-|- \ n";
cout <<"3" <<m [3] [1 ]<<"|"<< m [3] [2 ]<<"|"<< m [3] [3] <<"\ n \ n \ n ";
)
Amit Srivastava:
Můžete zachytit pohyb myši pomocí MFC ve VC + + následujícím způsobem. Vytvořte standardní MFC exe soubor a DocumentView calss tam bude myši událostí, tj. OnMouseMove (), OnLButtonDown (), můžete získat pozici myši v libovolné funkce. Obě funkce přijímá dva parametry (UINT nFlags, CPoint bod). A v bodě objektu bude pozice myši (x, y) a můžete si je snadno.
@ Raj:
Můžete si kalkulačku progam zde.
http://www.mycplus.com/free-utilities/scientific-calculator/
@ Gcablay_18:
Tam jsou tutoriály k dispozici zde v C + + pro vytváření tříd.
http://www.mycplus.com/tutorials/cplusplus-programming-tutorials/classes-2/
@ Vineet:
Tato funkce vypnutí grafického režimu a vrátí se do pozice, že byl před initgraph funkce byla volána. Closegraph funkce uvolní všechny zdroje obsazené grafický systém jako memry, fonty, ovladače atd ...
Můžete se dozvědět více o grafických funkcí zde
http://www.mycplus.com/featured-articles/c-language-graphics-library-reference-part-1/