今天封装了一个Line类,负责在昨天写的窗口上绘制线条。
OpenGL绘图是通过给glBegin函数设置参数达成的,绘制线条有三个不同的参数:
GL_LINES : 绘制连接两个点的线段(绘制的端点位于glBegin函数与glEnd函数之间)
GL_LINE_STRIP : 绘制首尾相连的折线
GL_LINE_LOOP : 绘制首尾相连的折线,并在最后将起始点与终点相连接,闭合路径
下面是Line类的代码:
/***********************************************
文件名:Line.h
功能:画布,在上面可以画点,画线条和椭圆、矩形
************************************************/
#ifndef _LINE_H_
#define _LINE_H_
#include "Point.h"
#include "Window.h"
class Line : public Object {
public:
Line(){
this->mode = this->LINE_MODE_DEFAULT;
this->status = this->LINE_INIT;
}
//起始点,每次设置起始点,都需同时记录此时是起始点状态,若此时已是起始点
//则删除上一个起始点
void moveTo(Point& p){
if(this->status == this->LINE_START) {
points.pop_back();
return;
}
points.push_back(p);
this->status =