Kaip pateikti ratą „OpenGL“

Autorius: Eugene Taylor
Kūrybos Data: 14 Rugpjūtis 2021
Atnaujinimo Data: 12 Gegužė 2024
Anonim
Blender Compositing VFX Tutorial : How to compose a Digital Matte Painting in 2.8 [Eevee]
Video.: Blender Compositing VFX Tutorial : How to compose a Digital Matte Painting in 2.8 [Eevee]

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 . Tai suteiks jums cos () ir sin () (sinuso ir kosinuso) funkcijas, reikalingas apskritimui apskaičiuoti.

3 žingsnis

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.

4 žingsnis

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.


5 žingsnis

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.

6 žingsnis

Į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.


7 žingsnis

Po ciklo, įveskite šią kodo eilutę:

glEnd () EITI

Tai pasakys „OpenGL“, kad baigėte brėžti linijas.

8 žingsnis

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ą.

9 žingsnis

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.

Jūų blizgu „Whirlpool“ nerūdijančio plieno šaldytuva yra patrauklu ir madinga, tačiau įbrėžima gali ugadinti jo elegantišką išvaizdą. Vykdant vią judėjimą, kurį dažniauiai turi virtuvė, ypač namuoe u ...

Laringofaringini refliuka yra detruktyvu rūgštie refliuko tipa, veikianti ryklę (gerklę), gerkla ir templę. Ši liga dažnai neturi kitų refliukų imptomų, tokių kaip deginima. Todėl ji dar vadinama tyli...

Rekomenduojamas