Kā renderēt apli OpenGL

Autors: Eugene Taylor
Radīšanas Datums: 14 Augusts 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)
Video: How To Render CIRCLES (OpenGL/Vulkan/DirectX/Metal)

Saturs

OpenGL jeb Open Graphics Library ir grafiskā API (Application Programming Interface), kas paredzēta 2D un 3D lietojumprogrammu rakstīšanai dažādās programmēšanas valodās un platformās. To var izmantot, lai renderētu jebko, sākot no vienkāršiem, primitīviem objektiem līdz sarežģītām 3D ainām. Open GL tiek plaši izmantots datoru projektēšanā, zinātniskajā vizualizācijā, lidojumu simulācijā un video spēlēs. Pat ja OpenGl nav metožu, kā tieši uzzīmēt apli, ir iespējams to izveidot, izmantojot virknes līniju. Lai uzzīmētu apli, jums būs jābūt pamatzināšanām par OpenGL.

1. solis

Izveidojiet pamata programmu ar OpenGL skatu. Ja jums nav zināms šis process, OpenGL lapā ir apmācība.


2. solis

Pievienojiet Math.h.header failu savai programmai, programmas sākumā ievadot šādu kodu: #include . Tas nodrošinās jums cos () un sin () (sinusa un kosinusa) funkcijas, kas nepieciešamas apļa aprēķināšanai.

3. solis

Pirms atzvanīšanas funkcijas parādīšanas sāciet apļa metodi, pievienojot šādu kodu:

void drawCircle (GLint x, GLint y, GLint rādiuss, int num_lines) {}

Mainīgie "x" un "y" tiks izmantoti, lai definētu apļa centru jūsu logā, savukārt "rādiuss" nosaka apļa rādiusu. Vesels skaitlis "num_lines" ir rindu skaits, ko izmanto apļa sastādīšanai. Jo lielāks šis skaitlis, jo vienmērīgāk parādīsies aplis.

4. solis

Atslēgās pievienojiet šādu konfigurācijas kodu:

pludiņa leņķis GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.

Mainīgais "leņķis" satur to līniju leņķi, kuras izmantoja apļa izveidošanai. Izsaucot funkciju glColor3f (), līniju krāsa tiek iestatīta uz melnu, kur trīs 0 sērija atbilst sarkanās, zaļās un zilās krāsas intensitātei skalā no 0 līdz 1.


5. solis

Pievienojiet šo kodu zem funkcijas glColor3f () no 4. darbības:

glBegin (GL_LINE_LOOP) IET

Tas norāda OpenGL, ka jebkuras nākamās līnijas ir saistītas ar līniju vilkšanu. Konkrēti, tas uzzīmēs “GL_LINE_LOOP”, kas ir savienotu līniju virkne.

6. solis

Pēc glBegin () izsaukuma ievadiet šādu kodu ciklam for:

par (int i = 0; i <rindas_numurs; i ++) {leņķis = i * 2 * M_PI / num_līnija; glVertex2f (x + (cos (leņķis) * rādiuss), y + (sin (leņķis) * rādiuss)); }

Šī cilpa veic trīs lietas. Pirmkārt, tas atkārtojas atbilstoši skaitļa "num_lines" vērtībai, kur num_lines ir vesels skaitlis, katrā atkārtojumā ievilkot līniju un iegūstot apli, kas sastāv no taisnām līnijām num_lines. Otrkārt, tas radiānos aprēķina līniju leņķi attiecībā pret apļa centru. "M_P" ir matemātikā h definēta konstante, kas apzīmē pi. Visbeidzot, izsaukums uz glVertex2f () aprēķina līniju gala punktu koordinātas.


7. solis

Pēc saites uz ievadiet šādu koda rindu:

glEnd () AIZIET

Tas paziņos OpenGL, ka esat pabeidzis līniju zīmēšanu.

8. solis

Lai ainā uzzīmētu apli, pievienojiet zvanu no metodes drawCircle () programmas atzvanīšanas displeja funkcijai, kas jāsagatavo 1. solī. Norādiet x, y, rādiusa un num_lines vērtības, kur x un y apzīmē punktu jūsu ainā rādiuss ir apļa rādiuss, un num_lines ir līniju skaits, kas veido apli. Atkal, ja neesat pazīstams ar OpenGL un atzvanīšanas displeju, skatiet OpenGL apmācību.

9. solis

Sastādiet un palaidiet savu programmu. Ja funkcijas ievadījāt pareizi, tai vajadzētu sastādīt bez kļūdām. Ja esat norādījis vērtības x, y un rādiusam, jums vajadzētu redzēt melnu apli, kas parādīts uz balta fona.

Pēc matu noņemšana, izmantojot matu noņemšana metodi, āda var kļūt kairināta un ratie izitumi vai arkani izciļņi. Šie pietūkumi var būt aiņošana vai ieaugušu matiņu rezultāt, vai arī to var izraiīt vi...

Iemeli ir daudzi, lai atratu auu līmi, ka ietrēdzi uz platmaa virmām, piemēram, krūzītēm vai bērnu rotaļlietām. Līme var būt atlikum, ka palici uz cenu zīme, mizota līme mākla projekta laikā vai pat k...

Interesanti Raksti