我正在开发一个程序,它将计算一些多边形的质心。我有质心计算。我想用 OpenGL 显示多边形。我已经启动并运行了一个 OpenGL 窗口。
在 OpenGL 类中有一个方法,drawRect,您可以在其中将顶点“绘制”到屏幕上。然而,我得到了我想在一个单独的多边形类中绘制的顶点。理想情况下,我想在多边形上调用 draw 方法,例如
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
}