Садржај
ОпенГЛ, или Опен Грапхицс Либрари, је графички АПИ (Апплицатион Программинг Интерфаце) за писање 2Д и 3Д апликација на различитим језицима и програмским платформама. Може се користити за приказивање било чега од једноставних и примитивних објеката до сложених 3Д сцена. Опен ГЛ се широко користи у компјутеризованом дизајну, научној визуализацији, симулацији летења и видео играма. Чак и ако ОпенГл нема методе за директно цртање круга, могуће је да се направи један користећи низ линија. Морат ћете имати основно знање о ОпенГЛ-у да бисте нацртали круг.
Упутства
Не постоји директна метода за стварање круга у ОпенГЛ-у, али је још увијек могуће саставити једну с правим линијама кода (Цреатас / Цреатас / Гетти Имагес)-
Направите основни програм помоћу ОпенГЛ прозора прозора. Ако нисте упознати са овим процесом, постоји водич на ОпенГЛ страници.
-
Додајте датотеку матх.х.хеадер у ваш програм уносом сљедећег кода на почетку програма: #инцлуде
. Ово ће вам дати функције цос () и син () (синус и косинус) потребне за израчунавање круга. -
Започните метод кружења додавањем следећег кода пре приказивања функције повратног позива:
воид дравЦирцле (ГЛИНТ к, ГЛинт и, ГЛинт раи, инт нум_линес) {}
Варијабле "к" и "и" ће се користити за дефинисање центра круга у вашем прозору, док "зрак" успоставља радијус круга. Интегер "нум_линес" је број линија које се користе за састављање круга. Што је већи број, круг ће изгледати глатко.
-
Додајте следећи конфигурациони код унутар кључева:
флоат угао ГО инт нум_линес ГО глЦолор3ф (0.0, 0.0, 0.0) ГО.
Варијабла "угао" ће садржати угао линија које се користе за конструисање круга. Позив функције глЦолор3ф () поставља боју линија на црну, где серија од три 0 одговара интензитету црвене, зелене и плаве на скали од 0 до 1.
-
Додајте следећи код испод функције глЦолор3ф () из корака 4:
глБегин (ГЛ_ЛИНЕ_ЛООП) ГО
Ово говори ОпенГЛ-у да све наредне линије укључују црте за цртање. Конкретно, он ће нацртати "ГЛ_ЛИНЕ_ЛООП", који је низ повезаних линија.
-
Унесите следећу шифру од а до петље након позива глБегин ():
за (инт и = 0; и <нум_линес; и ++) {угао = и * 2 * М_ПИ / нум_линес; глВертек2ф (к + (цос (угао) * радијус), и + (без (угла) * радијуса)); }
Ова кравата прави три ствари. Прво, он се понавља према вредности "нум_линес", где је нум_линес цео број, цртајући линију на свакој итерацији и резултујући у круг састављен од нум_лине правих линија. Друго, израчунајте угао линија у односу на центар круга у радијанима. "М_П" је константа дефинисана у матх.х која представља пи. На крају, позив глВертек2ф () израчунава координате крајњих тачака редова.
-
Након петље-до, унесите следећу линију кода:
глЕнд () ГО
Ово ће рећи ОпенГЛ-у да сте завршили са цртањем линија.
-
Да бисте нацртали круг у сцени, додајте позив из методе дравЦирцле () функцији повратног позива програма, која мора бити припремљена у кораку 1. Одредите вредности к, и, радијуса и а_лине, где к и и представљају тачку у његовој сцени, радијус је полупречник круга, а нум_линес је број линија које чине круг. Опет, ако нисте упознати са ОпенГЛ-ом и приказом повратног позива, погледајте ОпенГЛ туториал.
-
Компајлирајте и покрените свој програм. Ако сте исправно унели функције, требало би их компајлирати без грешака. Ако сте одредили вредности к, и и радијуса, требало би да видите црни круг приказан на белој позадини.
Шта ти треба
- Рачунар са ОпенГЛ подршком
- Уређивач текста и алатке за компајлер Ц језика или Ц развојно окружење