Я работаю над программой, которая будет вычислять центроиды некоторых полигонов. У меня есть расчеты центра тяжести. Я хотел бы отображать полигоны с OpenGL. У меня уже есть OpenGL-окно.Рисунок с OpenGL
В классе OpenGL существует метод drawRect, где вы рисуете вершины на экране. Однако у меня есть вершины, которые я хочу рисовать в отдельном классе полигонов. В идеале я хотел бы назвать метод draw на полигоне, например.
firstPolygon.draw();
Но я не знаю, как бы я сделать это как метод DrawRect в классе OpenGL и тот единственный способ, которым я знаю, чтобы рисовать. Можно ли каким-либо образом отправить данные методу draw из класса Polygon? или нарисовать непосредственно на экране в классе многоугольников?
В настоящее время «OpenGLView.m» содержит:
#import "OpenGL/gl.h"
#import "OpenGLView.h"
#import "Poly.h"
@implementation OpenGLView
-(id)initWithFrame:(NSRect)frameRect
{
self = [super initWithFrame:frameRect];
if(self){
// initialise things here
}
return self;
}
-(void)drawRect:(NSRect)Rect
{
glClearColor(1.0f,1.0f,1.0f,1.0f);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0f, 0.0f, 0.0f);
glBegin(GL_LINE_LOOP);
{
glVertex3f( 0.0, 0.6, 0.0);
glVertex3f(-0.2, -0.3, 0.0);
glVertex3f( 0.2, -0.3 ,0.0);
}
glEnd();
// finish drawing
glFlush();
}
@end
И КЛАСС «Полигон» Я хотел бы обратить в этом методе, так что я могу сослаться на сохраненные вершины легко ..
-(void)drawPolygon
{
// draw vertices
}
Я не уверен, что следую за тем, как класс OpenGL не имеет экземпляра объекта многоугольника, и то же самое с классом многоугольника, не имеющим экземпляр класса opengl, поэтому я не уверен, как его получить общаться. –
@PaulReed Вы всегда можете добавить свой собственный класс, который имеет функцию рисования, которая принимает контекст класса opengl. –
Любые идеи о том, как передать контекст? Обычно я печатаю в контексте при работе на iOS, но работаю на Mac, это немного новое. –