最难的还是理解图形流水线,今天理解了一下坐标系
三次的代码合在一起
#include<GL/glut.h>
#include<iostream>
using namespace std;
void bresenham_line(int x0, int y0, int x1, int y1);
void bresenham_circle(int r);
void bresenham_ellipse(int a, int b);
void initial()
{
glClearColor(1.0, 1.0, 1.0, 1.0);
glMatrixMode(GL_PROJECTION);
gluOrtho2D(-50, 50, -50, 50); //这个很重要关于坐标系,后面详写
//glOrtho(-10.0, 10.0, -10.0, 10.0, -1.0, 1.0);
}
void display()
{
//int x0 = 0; //直线数据
//int y0 = 0;
//int x1 = 5;
//int y1 = 8;
//int r = 20; //圆的半径
int a = 16; //椭圆长短轴
int b = 9;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(0.0, 0.0, 0.0);
/*glBegin(GL_LINES); //由起点终点确定的直线
glVertex2i(x0, y0);
glVertex2i(x1, y1);
glEnd();*/
glBegin(GL_LINES); //x轴
glVertex2i(-50,0);
glVertex2i(50, 0);
glEnd();
glBegin(GL_LINES); //y轴
glVertex2i(0, 50);
glVertex2i(0, -50);
glEnd();
glColor3f(1.0, 0.0, 0.0); //BH算法
glPointSize(2.0);
glBegin(GL_POINTS);
//