我正在开发一个程序,它将计算一些多边形的质心。我有质心计算。我想用 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
}