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

如何用旧版OpenGL绘制不同颜色的线条?

旧版OpenGL使用固定功能管线(Fixed Function Pipeline)来进行渲染,其中包括顶点处理、光栅化和片段处理等阶段。要绘制不同颜色的线条,可以按照以下步骤进行操作:

  1. 初始化OpenGL环境:包括创建窗口、设置视口大小等。
  2. 设置绘制模式:使用glMatrixMode函数将当前矩阵模式设置为投影矩阵模式,然后使用glLoadIdentity函数将当前矩阵重置为单位矩阵。
  3. 设置视口和投影矩阵:使用glOrtho函数设置正交投影矩阵,以定义绘制区域的大小和位置。
  4. 设置线条颜色:使用glColor3f函数设置绘制线条的颜色。该函数接受三个参数,分别代表红、绿、蓝三个通道的颜色值,取值范围为0.0到1.0。
  5. 绘制线条:使用glBegin(GL_LINES)函数开始定义线条的绘制,然后使用glVertex2f函数定义线条的起点和终点坐标。可以多次调用glVertex2f函数来定义多个线条的起点和终点坐标。最后使用glEnd函数结束线条的绘制。

下面是一个示例代码,用于绘制两条不同颜色的线条:

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

void display()
{
    glClear(GL_COLOR_BUFFER_BIT);

    // 设置第一条线条的颜色为红色
    glColor3f(1.0, 0.0, 0.0);
    glBegin(GL_LINES);
    glVertex2f(-0.5, 0.0);
    glVertex2f(0.5, 0.0);
    glEnd();

    // 设置第二条线条的颜色为绿色
    glColor3f(0.0, 1.0, 0.0);
    glBegin(GL_LINES);
    glVertex2f(0.0, -0.5);
    glVertex2f(0.0, 0.5);
    glEnd();

    glFlush();
}

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

在这个示例中,首先使用glutInit函数初始化OpenGL环境,然后设置显示模式、窗口大小和标题等。在display函数中,首先使用glClear函数清空颜色缓冲区。然后使用glColor3f函数设置线条的颜色,分别绘制了一条红色的水平线和一条绿色的垂直线。最后使用glFlush函数将绘制的结果刷新到屏幕上。

注意:以上代码是使用OpenGL的固定功能管线进行绘制的,如果要使用现代OpenGL(如OpenGL 3.0及以上版本),需要使用着色器程序来进行绘制。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

关于c#winformsharpGL(OpenGL)绘制不出图形,绘制窗口是个黑框

原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11790309.html 在c++opengl中可能是因为是最基本库,很多东西都把你做好了...转到c#下大牛们对opengl支持库,比如sharpGL,使用起来需要非常严谨 就比如: gl.Color(0.0f, 0.0f, 1.0f);这个设置颜色代码 在c++下不管是0.0f也好还是...0也好都可以,而在c#下sharpGL没有写0.0f这种格式 图像就完全绘制不出来。...,你在winfrom界面可能会全是黑 让你觉得你没有绘制出图形出来。。。。...这就是我在c#下开发opengL总结两个坑。 那么如果你出现了其他绘制问题,自己还觉得代码逻辑没问题的话,仔细检查一下格式。

1.4K10

AI干货-Adobe illustrator羽毛状线条如何绘制【附安装包】

0idshjb Adobe illustrator这款软件为用户们提供了非常多 图片编辑 工具和 绘画 工具,满足用户们不同图像处理需求,软件绘画功能十分强大,你可以直接通过绘画工具制作出自己想要图片...,就比如今天小编在身边AI大神指导下新学会羽毛状线条绘制方法,现在小编将这个绘画方法通过以下文章方式分享给大家,一起学习!   ...打开AI,新建画布,大小随意   选择工具栏中“ 弧形工具 ”   鼠标移至画布中,鼠标单击一下定点,在不松手情况下拖动鼠标,就会绘制一个弧线, 在绘制中按住空格可以自由移动   在画布中单击绘制图形...,在不松手时 按F键 ,可以改变图形方向-相反方向   在绘制图形时,不松手状态下按字母C,可以形成闭合路径,再次按C,取消闭合路径   在绘制图形时, 不松手状态下按方向键↑↓箭头 ,可以改变圆弧弧度...  在绘制图形时,不 松手状态下按“~”键 ,同时拖动鼠标移动位置,可以绘制多个圆弧。

68220

如何让你绘制柱状图格外与众不同

前些天有小伙伴在公众号里回复问如何绘制出五颜六色柱状图,今天小编就来与大家说道说道。 柱状图绘制本身并不复杂,一个bar函数就可以轻松搞定,相信不少小伙伴都用过它。上一道开胃菜让大家尝尝先。...纯色条形图 % 生成绘图所需要数据 N=25 x = linspace(0,10,N)'; y = gaussmf(x,[1.8,5]); % 生成不同颜色 needcolor=rand(N,3);...万里长征第一步,既然想要色彩斑斓,首先就得要准备好颜色。只可惜matlab内置仅支持以下几种。...随机颜色柱状图 方法1:利用facecolor属性和for循环 figure(2) for i=1:N bar(x(i),y(i),8/N,'facecolor',needcolor(i,:)...不一样烟火——渐变色柱状图绘制 生成渐变色 color_init=[1,0,0; 1,0.5,0; 1,1,0; 0 1 0; 0 0 1;0,1,1;1,0,1]; color_init=flipud

1.3K10

iOS图形处理概论:OpenGL ES,Metal,Core Graphics,Core Image,GPUImage,Scene Kit (3D) ,Sprite Kit (2D),OpenCV

界面图形框架 -- UIKit UIKit UIKit是一组Objective-C API,为线条图形、Quartz图像和颜色操作提供Objective-C 封装,并提供2D绘制、图像处理及用户接口级别的动画...当使用Quartz 2D进行绘制时,所有设备特定特性被包含在你使用特定类型图形环境中,因此通过给相同图像操作函数提供不同图像环境你就能够画相同图像到不同设备上,因此做到了图像绘制设备无关性...图形环境Context是个比较抽象东西,它不仅仅是一个可以绘制图层,还包含为当前图层设置参数,如阴影,线条粗细,绘制模式等。可以类比成一个新建Photoshop图层以及当前笔触,颜色等配置。...GLKit 可以采用不同方式使用OpenGL ES以便呈现OpenGL ES内容到不同目标:GLKit和CAEAGLLayer。...它由不同模块组成,这些模块中包含范围极为广泛各种方法,从底层图像颜色空间转换到高层机器学习工具。这里提供一个入门PDF文档 下载入口。

3.4K41

【iOS】OpenGL入门资料整理

注:iOS12开始弃OpenGL,改用Metal 2、OpenGL专用名词 2.1、OpenGL上下文(context) 在应用程序调用任何OpenGL执行之前,首先需要创建一个OpenGL上下文。...顶点数据就是要画图像骨架,和现实不同是,OpenGL图像都是由图元组成。在OpenGLES中,有3中类型图元:点、线、三角形。那这些顶点数据最终是存储在哪里呢?...因此,OpenGL在实际调用绘制函数之前,还需要指定一个由shader编译成着色器程序。...,那么像素颜色将会和帧缓冲区中颜色附着上颜色进行混合,混合算法可以通过OpenGL函数进行指定。...2.14、变换矩阵(Transformation) 例如图形想发生平移,缩放,旋转变换.就需要使用变换矩阵 2.15、投影矩阵(Projection) 用于将3D坐标转换为二维屏幕坐标,实际线条也将在二维坐标下进行绘制

1.4K10

Qt编写自定义控件5-柱状温度计

CPU占用会比较高,前阵子有个好友(贾文涛-涛哥)向我推荐了一个opengl绘制开源东西,QNanoPainter,东西是个好东西,我个人理解是直接封装了opengl绘制qpainter,可以使得绘制全部走...二、实现功能 1:可设置精确度(小数点后几位)和间距 2:可设置背景色/柱状颜色/线条颜色 3:可设置长线条步长及短线条步长 4:可启用动画及动画步长 5:可设置范围值 6:支持负数刻度值 7:支持任意窗体大小缩放.../线条颜色 * 3:可设置长线条步长及短线条步长 * 4:可启用动画及动画步长 * 5:可设置范围值 * 6:支持负数刻度值 * 7:支持任意窗体大小缩放 * 8:可设置柱状条位置 左侧 居中...lineColor; //线条颜色 QColor barBgColor; //柱状背景色 QColor barColor;...QColor &bgColorStart); void setBgColorEnd(const QColor &bgColorEnd); //设置线条颜色 void setLineColor

2.2K50

matlab画点图如何设置点大小颜色_matlab如何根据点绘制曲线图

大家好,又见面了,我是你们朋友全栈君。 线型 说明 标记符 说明 颜色 说明 – 实线(默认) + 加号符 r 红色 — 双划线 o 空心圆 g 绿色 : 虚线 * 星号 b 蓝色 :....Matlab中,plot绘图曲线线宽、标记点大小、标记点边框颜色和填充颜色设置 1、LineWidth:用于设置线宽,其后ProperValue选项为数值,如0.5,1,2.5等,单位为points​...; 2、MarkerEdgeColor:用于设置标记点边框线条颜色,其后ProperValue选项为颜色字符,如‘g’,’b’,’k’等​; 3、MarkerFaceColor:用于设置标记点内部区域填充颜色...,其后ProperValue选项为 颜色字符,如‘g’,’b’,’k’等​​; 4、Markersize:用于设置标记点大小,其后ProperValue选项为数值,单位为points。​...为了让大家方便理解,直接给例子:将自己数据写成3列10行命名为PP,然后复制下面代码进去,就知道A如何设置这4个参数了。

8K20

一看就懂 OpenGL 基础概念丨音视频基础

OpenGL 是一套跨语言、跨平台,支持 2D、3D 图形渲染接口。这套接口由一系列函数组成,定义了如何对简单及复杂图形进行绘制。...第一步,可能是先确定三角形三个顶点位置: 三角形绘制流程 1 第二步,自然是将三个点线段连起来: 三角形绘制流程 2 第三步,你可能觉得这样三角形太过于单调,于是准备给三角形上色,因为是在屏幕上...,而屏幕本质用是一个个像素来显示颜色,所以上色之前要先确定好哪些像素是属于三角形,于是你叫计算机把属于三角形内部像素一个个圈出来: 三角形绘制流程 3 第四步,你想画一个带渐变色炫酷三角形,所以需要给每个像素都上不同颜色...这种模式下绘制图形很方便,OpenGL 大多数功能都被库隐藏起来,是一种配置化(Configurable)管线,开发者很少有控制 OpenGL 如何进行计算自由。...而这张图片由若干个片段(fragment)组成(可以当做将这张图拆解为一个个类似屏幕上像素小片段),片段可以近似看成像素,但是又略有不同,一个片段包含渲染该片段所需要位置、颜色和深度全部信息。

1.7K10

OpenGL绘制平滑着色三角形与相交区域混合着色

一般默认情况下,OpenGL认为逆时针绕法多边形是正对着,这一特性对于希望给多边形正面和背面赋予不同物理特性十分有用。...三、明暗处理 在绘制多边形时,我们常常指定绘制颜色,而在OpenGL中,颜色实际上是对各个顶点而不是对各个多边形指定。...多边形轮廓或者内部单一颜色或许多不同颜色来填充处理方式成为明暗处理。...在OpenGL中,单一颜色处理称为平面明暗处理(FlatShading),许多不同颜色处理称为光滑明暗处理(Smooth Shading),也称为Gourand明暗处理(Gourand Shading...应用平面明暗处理模式时,多边形内每个点法向一致,其颜色也一致,OpenGL指定多边形最后一个顶点时颜色作为填充多边形纯色。

2.1K110

opengL ES _ 入门_05

学习目标: 1.理解OpenGL如何模拟现实世界光照条件 2.通过定义光源,材料和光照模型属性,渲染光照物体 3.定义光照物体材料属性 任务: 绘制一个被光照射球体 概念解释:...,在场景中绘制所有物体,硬件或者软件会把被绘制表面转回为像素集合,在这个时候,不考虑是否被遮挡,OpenGL 此时,还会计算,这些表面和观查着平面的距离,如果启动了深度缓冲区,OpenGL 会把它深度值和已经存储在缓冲区中深度值...) 理解OpenGL如何模拟现实世界光照条件 补充知识?...通俗解释一下,假设一个物体材料颜色为红色,那么,蓝光照射这个物体,我们看到是一个黑色球,因为他把蓝光吸收了,如果我们红光照射他,我们看到就是一个红球,如果白光照射他,我们也看到是红球,...如何创建光源? glLightfv()函数指定光源位置,如果使用不同颜色光,使用glLight*()函数修改 场景中至少可以包含八个光源,除了GL_LIGHT0 之外其他光源颜色都为黑色。

60230

Android openGl 绘制简单图形实现示例

、who(对谁使用)、what(是个什么东西)、why(为什么要这么?).一个H即:how(到底该怎么?)),基本概念篇主要围绕这几个方面进行分析 1. What? openGl是什么?...:绘制图形,因为需要提供很多细节图形渲染管线,所以绘制图形前至少需要一个顶点着色器来绘制形状和一个片段着色器颜色,形状。...没错,这才没有变形视图。到这里,基本通过OpenGl绘制简单图形就over了,下面我们讲解下如何添加一些交互动作。...添加动作 前面都是简单动作介绍,使用OpenGl在屏幕上绘制对象是使用openGl基本功。下面我来说下如何添加旋转形状。...修改顶点颜色 一个颜色是不是太单调了?如何让做成多彩呢?接下来我们来做一个多彩三角形,如何来做一个多彩三角形?我们通过顶点着色器来做。

2.5K30

C++ Qt开发:Charts折线图绘制详解

在之前文章中笔者简单创建了一个折线图,由于之前文章只是一个概述其目的是用于让读者理解绘图组件是如何被引用到项目中,以及如何实际使用,本章我们将具体分析折线图绘制功能,详细介绍图表各个部分设置和操作...,以及QValueAxis坐标轴类,此处如果读者需要绘制其他图形,比如折线图中有另一种光滑折线图,则就需要使用QSplineSeries类,根据不同图表需要使用不同绘制类,此处我们就以普通折线图为例...void setUseOpenGL(bool enable) 设置是否使用OpenGL进行渲染。 bool useOpenGL() const 返回是否使用OpenGL进行渲染。...首先我们先来实现对绘制线条自定义,在创建序列线条时,我们通常会自定义线条颜色颜色自定义可以使用QPen类来指定,以下是 QPen 类中常用方法说明和概述: 方法 描述 QPen() 默认构造函数...这些方法允许你设置和获取画笔各种属性,如颜色、风格、宽度、样式等。QPen 类用于定义在绘图中如何绘制线条和边框。你可以使用这些方法来自定义画笔,以满足应用程序设计需求。

45410

Android开发笔记(一百五十三)OpenGL绘制三维图形流程

从这篇文章开始,接下来会连载一系列OpenGL相关博文,好好探讨如何在Android中进行OpenGL开发。...对于Android开发者来说,OpenGL就是用来绘制三维图形技术手段,当然OpenGL并不仅限于展示静止三维图形,也能用来播放运动着三维动画。...不过对于初次接触OpenGL开发者来说,三维绘图概念可能过于抽象,所以为了方便读者理解,下面就以Android上二维图形绘制为参考,亦步亦趋地逐步消化OpenGL相关知识点。...有了绘图场所和绘画载体,还得有一把绘图工具,不管是勾勒线条还是涂抹颜料都少不了它,如果是写黑板报则有粉笔,如果是画国画则有毛笔,如果是画油画则有油画笔,如果是画Android控件则有画笔Paint。...; 2、重写onMeasure函数,可在此测量控件宽度和高度; 3、重写onLayout函数,可在此挪动控件位置; 4、重写onDraw函数,可在此绘制控件形状、颜色、文字以及图案等等; 于是前面提到

1.8K20

OpenGL ES实践教程(八)blend混合与shader混合

OpenGL ES实践教程5-Demo05-多重纹理实现图像混合尝试把两个图像多重纹理方式进行混合,这次补充介绍其他混合方式--blend混合与shader混合。...不同于多重纹理一个shader读取两个纹理单元图像数据; 不同于滤镜链,第一个滤镜以纹理单元0为输入,输出到纹理单元1,第二个再以纹理单元1为输出; blend混合与shader混合是在原来绘制基础上...核心思路 blend混合,先绘制图形1,开启blend混合,再绘制图形2; shader混合,先绘制图形1,在绘制图形2时候读取图形1颜色值,图形2颜色值乘以(1 - 图形2alpha)再加到图形...上面的图形有透明效果 具体细节 1、blend混合 blend混合是在绘制图形时,把要绘制颜色与当前缓冲区里面的颜色按照特定混合方式进行叠加。...blend混合常用在绘制透明图形,会用到RGBA颜色空间中alpha值。

3.1K51
领券