首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Opengl中绘制不显示C++的直线

在OpenGL中绘制直线的方法如下:

  1. 首先,需要创建一个OpenGL上下文,并设置视口和投影矩阵。
  2. 在绘制之前,需要指定绘制的颜色和线宽。可以使用glColor3f()函数设置颜色,使用glLineWidth()函数设置线宽。
  3. 使用glBegin(GL_LINES)函数开始绘制直线。
  4. 使用glVertex2f()函数指定直线的起点和终点坐标。
  5. 使用glEnd()函数结束绘制。

下面是一个示例代码:

代码语言:txt
复制
#include <GL/glut.h>

void display() {
    glClear(GL_COLOR_BUFFER_BIT);
    
    glColor3f(1.0, 0.0, 0.0); // 设置颜色为红色
    glLineWidth(2.0); // 设置线宽为2.0
    
    glBegin(GL_LINES);
    glVertex2f(-0.5, 0.0); // 设置起点坐标
    glVertex2f(0.5, 0.0); // 设置终点坐标
    glEnd();
    
    glFlush();
}

int main(int argc, char** argv) {
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(400, 400);
    glutCreateWindow("OpenGL Line");
    glutDisplayFunc(display);
    glutMainLoop();
    
    return 0;
}

这段代码使用OpenGL绘制了一条红色的直线,起点坐标为(-0.5, 0.0),终点坐标为(0.5, 0.0)。可以根据需要修改起点和终点的坐标以及颜色和线宽。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/product/mobdev
  • 腾讯云区块链服务:https://cloud.tencent.com/product/tbaas
  • 腾讯云游戏多媒体引擎(GME):https://cloud.tencent.com/product/gme
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 计算机图形学—从0开始构建一个OpenGL软光栅

    显示列表和着色器:OpenGL 提供了两种主要方式来指定如何渲染图形。一种是通过使用显示列表来指定一系列顶点和参数。...但在计算机,无论计算精度如何提高,始终不能表示一个无穷小点。另一方面,无论图形输出设备(例如,显示器)如何精确,始终不能输出一个无穷小点。...同样,数学上直线没有宽度,但OpenGL直线则是有宽度。...基本使用以下是一个简单OpenGL程序示例,使用C++和GLFW库创建一个窗口并绘制一个三角形:GLuint texture;glGenTextures(1, &texture);glBindTexture...扩展特性OpenGL一大特性就是对扩展(Extension)支持,当一个显卡公司提出一个新特性或者渲染上大优化,通常会以扩展方式驱动实现。

    11510

    【Java AWT 图形界面编程】 Canvas 画布绘制箭头图形 ( 数据准备 | 几个关键计算公式 | 绘制箭头直线和尾翼 )

    文章目录 一、 Canvas 画布绘制箭头图形 - 要点分析 1、数据准备 2、绘制直线 3、绘制箭头尾翼 二、代码示例 一、 Canvas 画布绘制箭头图形 - 要点分析 ---- 1、数据准备...绘制箭头时 , 先设置一条直线起始点和终止点 , 箭头绘制该线段上 ; /** * 起始点 X, Y 坐标 * 终止点 X, Y 坐标 */ private...int startX, startY, endX, endY; 为箭头指定一个长度 , 该长度末尾是 箭头终点 , 直线上确定箭头终点 , 该终点延伸出两个尾翼 , 尾翼也指定一个长度 ;...先把箭头附着直线 , 绘制出来 ; // 绘制直线 g.drawLine(startX, startY, endX, endY); 3、绘制箭头尾翼 首先 , 确定起始点和终止点..., 箭头位置 ; 尾翼起始点 arrowEndX, arrowEndY , 终止点需要根据角度计算出来 ; // 绘制箭头 尾翼 线段 , 直线角度 增减 45 度 , 即可获得尾翼角度

    1.5K20

    PageHelperSpringBoot@PostConstruct生效

    场景 使用PageHelper过程,出现了一个很奇怪问题,假设在数据库存放有30条Country记录,我们用下面的方法使用PageHelper进行分页查询,那么我们希望得到page.size...countryMapper.selectAll();   PageInfo page = new PageInfo(list);   assertEquals(10, list.size()); } } 原因 debug之后发现,执行完代码...PageHelper.startPage(1, 10)之后,我们把pageSize和pageNum设置到ThreadLocal中去了,但是执行下一行代码之前,理论上应该进入到PageInterceptor...拦截器给sql动态加上limit条件。...但是没有进去,原因在于BeanPostConstruct执行时候,Pagehelperautoconfigure还没有初始化,故而拦截器还没有创建出来,所以导致结果就是startPage只是把分页参数设置到了

    93610

    定义顶点和着色器

    二.定义空气曲棍球桌子结构   桌子绘制屏幕之前,我们需要告诉OpenGL要画什么。...开发过程第一步,我们需要以OpenGL可以理解形式定义一个桌子,OpenGL,所有东西结构都是从一个顶点开始。...三.OpenGL点,直线和三角形   OpenGL只支持绘制点,直线和三角形。三角形是最基本几何图形,因为它结构非常稳定,拿掉一个点之后就成了直线了,再拿掉一个点之后就只剩一个点了。...点和直线可以用于某些效果,只有三角形才能用来构建拥有复杂对象和纹理场景。OpenGL,我们把一系列点放到一个数组里去构建三角形,然后告诉OpenGL如何去连接这些点。...我们想要构建所有物体都需要用点,直线和三角形定义,现在我们想要绘制一个长方形,但OpenGL不能直接绘制长方形,所以我们可以绘制两个三角形来拼凑一个长方形。

    16710

    OpenGL 系列---基础绘制流程

    Android 为 OpenGL 绘制提供了一个特定视图GLSurfaceView,就像 SurfaceView 一样,它渲染绘制也可以一个单独线程,而非主线程,毕竟 GLSurfaceView...点 线 三角形 其他所有形状都是基于这三种图元来完成,比如矩形就可以看成是两个三角形拼成。 由于我们要绘制是一个点,坐标系,一个坐标就可以代替一个点了。...一种方法是直接使用JNI开发,直接调用本地系统库,也就是用 C++ 来开发 OpenGL,这种实现肯定要学会。 另一种方法就是 Java 层把内存块复制到 Native 层。...OpenGL 就是通过 光栅化 技术过程把每个点、直线及三角形分解成大量小片段,它们可以映射到移动设备显示像素上,从而生成一幅图像。这些片段类似于显示屏上像素,每一个都包含单一纯色。...OpenGL 通过光栅化技术把一条直线映射为一个片段集合,显示系统通常会把这些片段直接映射到屏幕上像素,结果一个片段就对应一个像素。

    1.8K40

    OpenGLES_理论01_介绍

    用于指定物体和操作, 创建交互式三维应用程序 问题3: OpenGL 提供函数能完成那些任务和不能完成那些任务 OpenGL 只提供了一些简单图元描述如(点,直线和多变形),没有提供描述三维物体模型高级函数...,如(汽车,身体某些关节等) 理解OpenGL 渲染原理 操作顺序 [名词解释] 顶点数据对象 比如你要绘制一个三角形,三角形有三个顶点,你要把三个顶点数据,放到内存一个区域中,这个内存对象...光栅化 比如你画一个圆,光栅化得阶段,就是根据你设置参数,绘制空心圆还是实心圆阶段,它主要根据点画模式,去将几何数据转换为片段过程,它处理操作还有(直线宽度,大小,着色模型,抗锯齿处理等计算...),每个片段都具有各自颜色和深度值 纹理内存 存放纹理图片内存区域 片段着色器 对最终像素点,显示颜色做一些,运算或者处理操作,比如你想让显示图片变模糊,你就在这里干....片段操作 我们片段着色器上纹理图片或者颜色数据进行了处理操作,但是还没有显示到片段上,前面的一些操作,生成了最终颜色和深度,如果有效,执行可用裁剪测试,alpha测试,模板测试和深度缓冲测试,某种测试失败将放弃最终片段方块继续处理

    62210

    OpenGL ES 2.0 for Android》读书笔记

    EGLAPI Registry OpenGL绘图方式 —— 点、线、三角形 我们都知道OpenGL是用来2D或3D绘图,可以绘制直线、各类图形、各类图像。...换句话说,就是有一个长方形、两个圆点、一条直线。 根据上面的三角形绘制理论,一个长方形等于两个三角形。所以界面的元素其实是两个三角形+两个圆点+一条直线。 定义坐标如下: ?...事实上,OpenGL坐标范围都是[-1, +1]。 ? 也就是说,想通过OpenGL绘制到屏幕上内容,其坐标值必须在[-1, +1]之间,否则就无法显示到屏幕上。...它们之间是一一对应,不可或缺,我们需要将它们链接起来。 OpenGL,Vertex Shader和Fragment Shader链接到一起,成为一个Program。...举个例子,上图中,游戏背景是一张图片,而不是简单纯色背景。 注意 OpenGL ES 2.0,Texture不一定要是正方形,但是S和T值必须是2n次方。

    4.5K91

    OpenGL 实践之贝塞尔曲线绘制

    由于在工作中经常要和贝塞尔曲线打交道,所以简单说一下自己理解: 现在假设我们要在坐标系绘制一条直线直线方程很简单,就是 y=x ,很容易得到下图: ?...OpenGL 绘制 通过 OpenGL 可以实现我们上述方案,把曲线拆分成多个点组成。...这种方案要求我们 CPU 上去计算贝塞尔曲线方程,根据 t 每一个取值,计算出一个贝塞尔点,用 OpenGL绘制上这个点。...这个点绘制可以采用 OpenGL 画三角形 GL_TRIANGLES 形式去绘制,这样就可以给点带上纹理效果,不过这里面的坑略多,起始点和控制点都是运行时动态可变实现难度会大于固定不变。...具体代码部分可以参考我项目: https://github.com/glumes/AndroidOpenGLTutorial 参考中,也有一个 OpenGL 绘制贝塞尔曲线例子,不过他绘制是贝塞尔曲线面

    1.7K30

    实验2 直线生成算法实现

    2.实验内容: (1) 根据所给直线光栅化示范源程序,计算机上编译运行,输出正确结果; (2) 指出示范程序采用算法,以此为基础将其改造为中点线算法或Bresenham算法,写入实验报告; (3...3.实验原理: 示范代码原理参见教材直线光栅化一节DDA算法。下面介绍下OpenGL画线一些基础知识和glutReshapeFunc()函数。...(1)数学上直线没有宽度,但OpenGL直线则是有宽度。同时,OpenGL直线必须是有限长度,而不是像数学概念那样是无限。...可以认为,OpenGL直线”概念与数学上“线段”接近,它可以由两个端点来确定。这里线由一系列顶点顺次连结而成,有闭合和闭合两种。...如果将GL_POINTS替换成GL_LINES,则两个点将被认为是直线两个端点,OpenGL将会画出一条直线。还可以指定更多顶点,然后画出更复杂图形。

    98820

    机械版CG 实验2 直线生成算法实现

    实验二 直线生成算法实现 1.实验目的: 理解基本图形元素光栅化基本原理,掌握一种基本图形元素光栅化算法,利用OpenGL实现直线光栅化DDA算法。...2.实验内容: (1) 根据所给直线光栅化示范源程序,计算机上编译运行,输出正确结果; (2) 指出示范程序采用算法,以此为基础将其改造为中点线算法或Bresenham算法,写入实验报告; (...3.实验原理: 示范代码原理参见教材直线光栅化一节DDA算法。下面介绍下OpenGL画线一些基础知识和glutReshapeFunc()函数。...(1)数学上直线没有宽度,但OpenGL直线则是有宽度。同时,OpenGL直线必须是有限长度,而不是像数学概念那样是无限。...可以认为,OpenGL直线”概念与数学上“线段”接近,它可以由两个端点来确定。这里线由一系列顶点顺次连结而成,有闭合和闭合两种。

    70920

    使用SharpGL三维建模技术生成3D井眼轨迹图

    一般来说,OpenGL API可以直接用于C/C++应用开发,但是使用起来比较复杂, SharpGL直接提供了OpenGL全部功能和扩展。...OpenGL获得一个RD是比较困难,底层Win32代码有大量函数获得像素格式,这些工作是大量重复和痛苦,好在这一切SharpGL帮我做了。...最后一个选择使用SharpGL原因是,OpenGL中大量很痛苦重复工作如加载信息等,但是这些工作.NET是非常容易处理。...而不是去显示一条特别长,没有什么弯度轨迹线。 绘制深度轴刻度方式与上面的类似。 绘制井眼轨迹线/投影线 井眼轨迹线分真正井眼轨迹线(黄色),还有背景面,左侧面,和底部面的投影线。...绘制水平投影图,把所有测点Z坐标设置为0进行绘制绘制井底点水平线 查找到最底部测点,然后绘制一条到Y轴直线即可。

    4K50

    opengl视图矩阵_心形线四个图像

    今天我们开始学习Opengl编程。 在学习之前,我们要开始配置Opengl,我这里使用是VS2010,语言是C++OpenglC++一个拓展包,用来进行计算机图形方面的编程。...我们只需要在g lBegin()和glEnd()函数里设置我们所需要绘制点,然后glBegin参数里使用 GL_POLYGON,即为画凸多边形(为什么设为 GL_POLYGON?...因为当我们所画点足够多时候,就能够近似看做曲线),而后Opengl会把glBegin和glEnd里面所有绘制点依次相连然后填充其内部,就得到了我们所需要绘制心形线。...我们知道C++主函数里包含了两个参数argc和argv,这里我们初始化GLUT时候也要用到。 首先我们初始化GLUT,调用glutInit函数,里面包含两个参数即为主函数两个参数。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

    39820
    领券