Turinys
„OpenGL“ arba „Open Graphics Library“ yra grafinė API („Application Programming Interface“), skirta 2D ir 3D programoms rašyti įvairiomis programavimo kalbomis ir platformomis. Jis gali būti naudojamas perteikti bet ką, pradedant paprastais, primityviais objektais ir baigiant sudėtingomis 3D scenomis. „Open GL“ plačiai naudojama kompiuterių projektavime, mokslinėje vizualizacijoje, skrydžio imitacijoje ir vaizdo žaidimuose. Nors „OpenGl“ neturi metodų, kaip tiesiogiai nupiešti apskritimą, jį galima sukurti naudojant eilutes. Norėdami nupiešti ratą, turėsite turėti pagrindinių „OpenGL“ žinių.
1 žingsnis
Sukurkite pagrindinę programą naudodami „OpenGL“ peržiūros sritį. Jei nesate susipažinę su šiuo procesu, „OpenGL“ puslapyje yra pamoka.
2 žingsnis
Įtraukite Math.h.header failą į savo programą, programos pradžioje įvesdami šį kodą: #include Prieš rodydami atgalinio skambinimo funkciją, pradėkite apskritimo metodą pridėdami šį kodą: void drawCircle (GLint x, GLint y, GLint spindulys, int num_lines) {} Kintamieji „x“ ir „y“ bus naudojami apibrėžiant apskritimo centrą jūsų lange, o „spindulys“ - apskritimo spindulį. Sveikasis skaičius „num_lines“ yra eilučių skaičius, naudojamas sudarant apskritimą. Kuo didesnis šis skaičius, tuo sklandžiau pasirodys apskritimas. Klavišuose pridėkite šį konfigūracijos kodą: plūduriuojantis kampas GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO. Kintamasis „kampas“ sudarys linijų, naudojamų apskritimui kurti, kampą. Iškviečiant funkciją glColor3f (), linijų spalva nustatoma į juodą, kur trijų 0 eilutė atitinka raudonos, žalios ir mėlynos spalvos intensyvumą skalėje nuo 0 iki 1. Pridėkite šį kodą po funkcija „glColor3f ()“ nuo 4 veiksmo: „glBegin“ (GL_LINE_LOOP) EITI Tai rodo „OpenGL“, kad bet kurios paskesnės eilutės apima linijų brėžimą. Tiksliau, jis nupieš „GL_LINE_LOOP“, kuris yra sujungtų linijų serija. Įveskite šį kodą for ciklui po skambučio glBegin (): for (int i = 0; i <eilutės_ numeris; i ++) {kampas = i * 2 * M_PI / num_line; glVertex2f (x + (cos (kampas) * spindulys), y + (sin (kampas) * spindulys)); } Ši kilpa daro tris dalykus. Pirma, jis kartojamas pagal „num_lines“ vertę, kur „num_lines“ yra sveikas skaičius, kiekvienoje iteracijoje nubrėždamas liniją ir gaunamas apskritimas, susidedantis iš tiesių linijų „num_lines“. Antra, jis apskaičiuoja linijų kampą, palyginti su apskritimo centru, radianais. „M_P“ yra matematikoje h apibrėžta konstanta, reiškianti pi. Galiausiai iškvietimas glVertex2f () apskaičiuoja tiesių galinių taškų koordinates. Po ciklo, įveskite šią kodo eilutę: glEnd () EITI Tai pasakys „OpenGL“, kad baigėte brėžti linijas. Norėdami nubrėžti apskritimą scenoje, pridėkite skambutį iš „drawCircle“ () metodo į programos atgalinio rodymo funkciją, kurią reikia paruošti atlikus 1 veiksmą. Nurodykite x, y, spindulio ir skaičių_ linijų reikšmes, kur x ir y reiškia tašką jūsų scenoje spindulys yra apskritimo spindulys, o num_lines - eilučių, sudarančių apskritimą, skaičius. Vėlgi, jei nesate susipažinę su „OpenGL“ ir atgalinio ryšio ekranu, žr. „OpenGL“ mokymo programą. Sudarykite ir paleiskite savo programą. Jei tinkamai įvedėte funkcijas, ji turėtų būti sukompiliuota be klaidų. Jei nurodėte x, y ir spindulio vertes, turėtumėte pamatyti juodą apskritimą, rodomą baltame fone.3 žingsnis
4 žingsnis
5 žingsnis
6 žingsnis
7 žingsnis
8 žingsnis
9 žingsnis