Съдържание
OpenGL или Open Graphics Library е графичен API (Application Programming Interface) за писане на 2D и 3D приложения на различни езици и платформи за програмиране. Тя може да се използва за препращане на всичко от прости и примитивни обекти до сложни 3D сцени. Open GL се използва широко в компютъризиран дизайн, научна визуализация, симулация на полети и видеоигри. Дори ако OpenGl няма методи за директно изчертаване на кръг, възможно е да се конструира такъв, използвайки поредица от линии. Трябва да имате основни познания за OpenGL, за да нарисувате кръга.
инструкции
Няма пряк метод за създаване на кръг в OpenGL, но все още е възможно да се състави едно с правилните линии на кода (Creatas / Creatas / Getty Images)-
Направете основна програма с прозорец на виртуалния прозорец на OpenGL. Ако не сте запознати с този процес, на страницата на OpenGL има урок.
-
Добавете файла math.h.header към програмата си, като въведете следния код в началото на програмата: #include
, Това ще ви даде cos () и sin () (синус и косинус) функции, необходими за изчисляване на кръга. -
Започнете метода на кръга, като добавите следния код, преди да покажете функцията за обратно извикване:
void drawCircle (GLINT x, GLint y, лъч на GLint, int num_lines) {}
Променливите "x" и "y" ще се използват за определяне на центъра на кръга във вашия прозорец, докато "лъчът" установява радиуса на окръжността. Цело число "num_lines" е броят на редовете, използвани за съставяне на кръга. Колкото по-голям е този номер, толкова по-гладко ще изглежда кръгът.
-
Добавете следния конфигурационен код в ключовете:
float ъгъл GO int num_lines GO glColor3f (0.0, 0.0, 0.0) GO.
Променливата "ъгъл" ще съдържа ъгъла на линиите, използвани за конструиране на кръга. Извикването на функцията glColor3f () задава цвета на линиите на черен, където серията от три 0 съответства на интензивността на червено, зелено и синьо по скала от 0 до 1.
-
Добавете следния код под функцията glColor3f () от стъпка 4:
glBegin (GL_LINE_LOOP) GO
Това казва на OpenGL, че всички следващи редове включват чертежи. По-конкретно, той ще нарисува "GL_LINE_LOOP", който е поредица от свързани линии.
-
Въведете следния код от цикъла до цикъла след обаждането на glBegin ():
за (int i = 0; i <num_lines; i ++) {ъгъл = i * 2 * M_PI / num_lines; glVertex2f (x + (cos (ъгъл) * радиус) и + (без (ъгъл) * радиус)); }
Тази връзка прави три неща. Първо, той се претърсва според стойността на "num_lines", където num_lines е цяло число, което начертава линия при всяка итерация и води до кръг, съставен от num_lines от прави линии. Второ, изчислете ъгъла на линиите спрямо центъра на кръга в радиани. "M_P" е константа, определена в math.h, представляваща pi. Накрая, извикването glVertex2f () изчислява координатите на крайните точки на редовете.
-
След цикъла-до въведете следния ред:
glEnd () GO
Това ще каже на OpenGL, че сте приключили с изчертаването на линиите.
-
За да начертаете кръга в сцена, добавете повикване от метода drawCircle () към функцията за обратно извикване на програмата, която трябва да бъде подготвена в стъпка 1. Посочете стойностите на x, y, радиус и a_line, където x и y представляват точка в неговата сцена радиусът е радиусът на окръжността, а num_lines е броят на линиите, съставляващи кръга. Отново, ако не сте запознати с OpenGL и дисплея за обратно извикване, вижте урока за OpenGL.
-
Компилирайте и стартирайте програмата си. Ако сте въвели правилно функциите, трябва да компилирате без грешки. Ако сте задали стойностите на x, y и радиуса, трябва да видите черен кръг, показан на бял фон.
Какво ви трябва
- Компютър с поддръжка на OpenGL
- Текстов редактор и C езикови компилатори или C среда за разработка