0
我正在研究计算某些多边形质心的程序。我已经完成了质心计算。我想用OpenGL显示多边形。我已经打开并运行了OpenGL窗口。使用OpenGL绘图
在OpenGL类中有一个方法drawRect,您可以在其中“绘制”顶点到屏幕。然而,我得到了我想要在单独的多边形类中绘制的顶点。理想情况下,我想在多边形上调用绘制方法,例如
firstPolygon.draw();
但我不知道我会怎么做,因为drawRect方法是在OpenGL的类,这是我知道画的唯一途径。我可以以某种方式将数据从Polygon类中发送到draw方法吗?或直接绘制到多边形类中的屏幕?
目前“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
}
0123我不确定我跟着OpenGL类没有多边形对象的实例和多边形类没有一个opengl类的实例一样 - 所以我不知道如何让他们到通信。 –
@PaulReed你总是可以添加你自己的具有drawng功能的类,它可以在opengl类上下文中使用。 –
关于如何传递上下文的任何想法?通常我在iOS上工作时输入上下文,但在Mac上工作时这有点新。 –