【openGL】画直线

 1 #include "stdafx.h"
 2 #include <GL/glut.h>
 3 #include <stdlib.h>
 4 #include <math.h>
 5 #include <stdio.h>
 6
 7 using namespace std;
 8
 9
10 void myDisplay(void){
11     glClear(GL_COLOR_BUFFER_BIT);
12     //glRectf(-0.5f, -0.5f, 0.5f, 0.5f);
13
14     glBegin(GL_LINES);
15     glVertex2f(-0.5f, -0.5f);        //直线起始坐标
16     glVertex2f(0.5f, 0.5f);         //直线结束坐标
17     glEnd();
18
19     glBegin(GL_LINES);
20     glVertex2f(-0.5f, 0.5f);
21     glVertex2f(0.5f, -0.5f);
22     glEnd();
23
24     glBegin(GL_LINES);
25     glVertex2f(-0.5f, 0.5f);
26     glVertex2f(-0.5f, -0.5f);
27     glEnd();
28
29     glBegin(GL_LINES);
30     glVertex2f(0.5f, 0.5f);
31     glVertex2f(0.5f, -0.5f);
32     glEnd();
33
34     glBegin(GL_LINES);
35     glVertex2f(-0.5f, 0.5f);
36     glVertex2f(0.5f, 0.5f);
37     glEnd();
38
39     glBegin(GL_LINES);
40     glVertex2f(-0.5f, -0.5f);
41     glVertex2f(-0.5f, 0.5f);
42     glEnd();
43
44     glBegin(GL_LINES);
45     glVertex2f(0, 0.5f);
46     glVertex2f(0, -0.5f);
47     glEnd();
48
49     glBegin(GL_LINES);
50     glVertex2f(-0.5f, -0.5f);
51     glVertex2f(0.5, -0.5f);
52     glEnd();
53
54     glBegin(GL_LINES);
55     glVertex2f(-0.5f, 0);
56     glVertex2f(0.5, 0);
57     glEnd();
58
59     glFlush();
60 }
61 int main(int argc, char *argv[]) {
62     glutInit(&argc, argv);
63     glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);
64     glutInitWindowPosition(100, 100);
65     glutInitWindowSize(500, 500);
66     glutCreateWindow("第一个 OpenGL 程序");
67     glutDisplayFunc(&myDisplay);
68     glutMainLoop();
69     return 0;
70 }

运行图像:

时间: 2024-11-05 23:30:52

【openGL】画直线的相关文章

《图形学》实验五:改进的Bresenham算法画直线

开发环境: VC++6.0,OpenGL 实验内容: 使用改进的Bresenham算法画直线. 实验结果: 代码: 1 //中点Bresenham算法生成直线 2 #include <gl/glut.h> 3 #include <math.h> 4 5 #define WIDTH 500 //窗口宽度 6 #define HEIGHT 500 //窗口高度 7 #define DRAWLINE ProBresenham(100,100,400,400); //画直线 8 9 #pr

《图形学》实验四:中点Bresenham算法画直线

开发环境: VC++6.0,OpenGL 实验内容: 使用中点Bresenham算法画直线. 实验结果: 代码: 1 //中点Bresenham算法生成直线 2 #include <gl/glut.h> 3 #include <math.h> 4 5 #define WIDTH 500 //窗口宽度 6 #define HEIGHT 500 //窗口高度 7 #define DRAWLINE1 MidpointBresenham(100,200,200,100); //画直线 8

《图形学》实验三:DDA算法画直线

开发环境: VC++6.0,OpenGL 实验内容: 使用DDA算法画直线. 实验结果: 代码: 1 #include <gl/glut.h> 2 #include <math.h> 3 4 #define WIDTH 500 //窗口宽度 5 #define HEIGHT 500 //窗口高度 6 7 #define DRAWLINE1 DDALine(100,200,200,100); //画直线 8 #define DRAWLINE2 DDALine(200,100,450,

计算机图形学(二)输出图元_2_ OpenGL画线函数

 OpenGL画线函数 图形软件包一般都提供一个描述一条或多条直线段的函数,其中每一直线段由两个端点坐标位置定义.在OpenGL中,和选择一个点位置一样,我们使用glVertex函数选择单个端点的坐标位置.我们使用一对glBegin/g1End来引入一串端点位置.有三个OpenGL符号常量可用于指定如何把这一串端点位置连接成一组直线段.默认情况下,每一符号常量显示白色实线. 使用图元线常量GL_LINES可连接每一对相邻端点而得到一组直线段.通常,这会导致一组未连接的线段,除非重复某些坐标位置.

Bresenham快速画直线算法

现在的计算机的图像的都是用像素表示的,无论是点.直线.圆或其他图形最终都会以点的形式显示.人们看到屏幕的直线只不过是模拟出来的,人眼不能分辨出来而已.那么计算机是如何画直线的呢,其实有比较多的算法,这里讲的是Bresenham的算法,是光栅化的画直线算法.直线光栅化是指用像素点来模拟直线,比如下图用蓝色的像素点来模拟红色的直线 给定两个点起点P1(x1, y1), P2(x2, y2),如何画它们直连的直线呢,即是如何得到上图所示的蓝色的点.假设直线的斜率0<k>0,直线在第一象限,Brese

Html5新特性 &lt;canvas&gt;画板画直线

 下面例子为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht

几种画直线的方法-孙鑫C++笔记

// HDC画直线 CPoint m_ptOrigin ; void CDrawView::OnLButtonDown(UINT nFlags, CPoint point) { m_ptOrigin = point; CView::OnLButtonDown(nFlags, point); } void CDrawView::OnLButtonUp(UINT nFlags, CPoint point) { HDC hdc; hdc = ::GetDC(m_hWnd); MoveToEx(hdc,

中点Bresenham算法光栅化画直线(个人总结精简版)代码超短!速度极快!

中点Bresenham算法光栅化画直线,每次只位移一个像素,精度高!此源码借助直线 y=x 做了一些转换,简化了主位移的处理,每次移动只需要 加减操作, 不需要乘除!速度极快!! 原理在最后,下面先贴上核心代码~ void Bresenham_LineTo(CDC *pDC, int x1, int y1, int x2, int y2) //中点Bresenham算法光栅化画直线 { float k = 1.0*(y2 - y1) / (x2 - x1); //斜率 int flag = 0;

ios画直线原理

画直线方法1: #pragma mark 画直线-比较简便的画法void drawLineEasy(){    CGContextRef ctx = UIGraphicsGetCurrentContext();    CGContextMoveToPoint(ctx, 0, 0);    CGContextAddLineToPoint(ctx, 100, 100);    CGContextStrokePath(ctx);} 画直线方法2: #pragma mark 画一条直线void draw

Html5新特性 &amp;lt;canvas&amp;gt;画板画直线

 以下样例为用canvas标签画多条直线 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht