在现代的OpenGL版本中,glLineWidth的宽度参数被限制为1.0,这意味着你不能使用它来绘制宽度大于1像素的线。然而,你可以通过其他方式来实现这个效果,例如使用三角形来模拟线。
以下是一个基本的步骤:
这种方法的一个缺点是,如果你需要绘制一系列连接的线段,那么在线段的连接处可能会出现不自然的效果。为了解决这个问题,你可能需要使用更复杂的算法来计算顶点的位置,例如使用三角形扇(triangle fan)来平滑地连接线段。
) 六、绘制圈 GL_LINE_LOOP ( 奇数个点 ) 七、绘制彩色的线 八、相关资源 一、设置线宽度 ---- 线的绘制宽度是 OpenGL 状态机中的一个值 , 通过 glLineWidth...方法设置 ; 下面的代码将线的宽度设置为 2 像素 ; // 设置线的宽度 glLineWidth(2.0f); 二、绘制单条线段 GL_LINES ---- 绘制线时, 会将从 glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); // 绘制线时..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); // 绘制线时...在绘制每个点之前 , 都设置当前的颜色值 , 即 OpenGL 状态机中的当前颜色值 , 第一个点 glVertex3f(0.0f, 0.0f, -10.0f) , 绘制前设置的是 白色 , 第二个点
glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin...(); // 将后缓冲区绘制到前台 SwapBuffers(dc); 运行效果 : 二、选中矩阵设置 ---- 在 【OpenGL】十、OpenGL 绘制点 ( 初始化 OpenGL 矩阵...矩阵的 ; 下面的代码是设置矩阵的代码 , 之后就开始了 OpenGL 模型渲染 , 也就是说模型渲染过程中 , 全程都选中了模型矩阵 , 在渲染时进行的矩阵操作 , 都是操作的该选中的 模型视图矩阵...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin
, 三个点可以唯一确定一个面 , 四个点及多个点组成的多边形 , 不一定是一个面 ; 绘制三角形面时 , 在 glBegin 方法中传入 GL_TRIANGLES 参数 , 然后在 glBegin 和..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...加入一个前提 , OpenGL 只绘制模型正面, 不绘制模型背面 ; 正面就是 摄像机对着的那一面 ; 在渲染前 , 调用 glEnable(GL_CULL_FACE) 设置 , 即可设置 OpenGL..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin
2.安装报错 在本地址找合适的版本下载:https://www.lfd.uci.edu/~gohlke/pythonlibs/ ?...———————————————————————————————————————————— 暂未发现错误,以下未验证: 然后在python 中import相关功能,运行后会出现错误 OpenGL.error.NullFunctionError...glutInit() #显示模式:GLUT_SINGLE无缓冲直接显示|GLUT_RGBA采用RGB(A非alpha) glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA...#窗口位置及大小-生成 glutInitWindowPosition(0,0) glutInitWindowSize(400,400) glutCreateWindow(b"first") #调用函数绘制图像...glutDisplayFunc(drawFunc) glutIdleFunc(drawFunc) #主循环 glutMainLoop() image.png 就应该能够显示茶壶模型了 二、简单使用例子 1.点线抛物线
为了使线看的更明显 , 设置当前线的宽度 5 像素 ; // 设置线的宽度 glLineWidth(5.0f); 代码示例 : // 只显示正面 , 不显示背面 //glEnable(GL_CULL_FACE..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置当前点的大小 glPointSize(5.0f); // 设置线的宽度...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置当前点的大小 glPointSize(5.0f); // 设置线的宽度...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin
文章目录 一、绘制 GL_QUADS 四边形 二、绘制多个四边形 三、相关资源 一、绘制 GL_QUADS 四边形 ---- 四边形绘制时 , 在 glBegin 方法中传入 GL_QUADS 参数 ,..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线...glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin(GL_POINTS...); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线 //glBegin
, 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...: 3、绘制 5 个点的情况 在 glBegin 和 glEnd 之间放置 5 个点 , 则 1,2,3 绘制一个三角形 , 1,3,4 绘制一个三角形 , 1,4,5 绘制一个三角形..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin..., 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin(GL_POINTS); // 绘制点 //
文章目录 一、绘制 GL_QUAD_STRIP 四边形 二、绘制四边形点分析 三、相关资源 一、绘制 GL_QUAD_STRIP 四边形 ---- GL_QUAD_STRIP 绘制规则 : 在 glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线...//glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连 //glBegin(GL_TRIANGLES); // 绘制多个三角形.../OpenGL ( GitHub 源码始终都会随着后续博客的进度更新覆盖 , 可能没有本博客的相关源码 , 推荐下载博客源码快照 ) ; 博客源码快照 : https://download.csdn.net
glBegin 方法中设置 GL_TRIANGLE_STRIP 参数 , 然后在 glBegin 和 glEnd 之间设置多个点进行三角形绘制 ; 设置了多个点 , 奇数点 与 偶数点 连接顺序不一样..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线...//glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连 // 绘制三角形面 glBegin(GL_TRIANGLE_STRIP);...GL_TRIANGLE_STRIP 三角形绘制分析 : 给代码中的点标上索引号 ; 有 4 个点 , 绘制的三角形个数是 4-2=2 个 ; 奇数索引点 1 : 当前点索引是奇数 1 ,
, 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置线的宽度 glLineWidth(2.0f); //glBegin...(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin(GL_LINE_STRIP);// 绘制前后连接的点组成的线...//glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连 //glBegin(GL_TRIANGLES); // 绘制多个三角形...glEnd(); // 将后缓冲区绘制到前台 SwapBuffers(dc); } 绘制效果 : 二、多边形绘制顺序分析 ---- 在 glBegin 和 glEnd 之间设置了...glEnd(); 三、相关资源 ---- GitHub 地址 : https://github.com/han1202012/OpenGL ( GitHub 源码始终都会随着后续博客的进度更新覆盖
如象素位置glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式glPolygonMode(),读取象素glReadPixel()、复制象素glCopyPixel()等。...OpenGL提供了强大的但是为数不多的绘图命令,所有较复杂的绘图都必须从点。线、面开始。...在跨平台的编程实例和演示中,aux很大程度上已经被glut库取代。OpenGL中的辅助库不能在所有的OpenGL平台上运行。 辅助库函数主要包括以下几类。...由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window, Windows NT, OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。...函数,并没有在标准OpenGL库中实现,或者它们是用来扩展已存在的OpenGL函数的功能。
光栅化、象素操作函数: 如象素位置 glRasterPos*()、线型宽度glLineWidth()、多边形绘制模式 glPolygonMode(),读取象素 glReadPixel()、复制象素 glCopyPixel...在跨平台的编程实例和演示中,aux 很大程度上已经被 glut 库取代。OpenGL 中的辅助库不能在所有的 OpenGL 平台上运行。...由于 glut中的窗口管理函数是不依赖于运行环境的,因此 OpenGL 中的工具库可以在 XWindow,Windows NT, OS/2 等系统下运行,特别适合于开发不需要复杂界面的 OpenGL 示例程序...这部分函数主要用于连接 OpenGL 和 Windows ,以弥补 OpenGL 在文本方面的不足。Windows 专用库只能用于 Windows 环境中。...8.其他扩展库 这些函数可能是新的 OpenGL 函数,并没有在标准 OpenGL 库中实现,或者它们是用来扩展已存在的 OpenGL 函数的功能。
(5.0f); //设置线的宽度 glColor4f(1.0, 0.0, 1.0, 0.5); //洋红色 glBegin(GL_LINES); //画线函数 glRotatef...(5.0f); //设置线的宽度 glColor4f(1.0, 0.0, 1.0, 0.5); //洋红色 glBegin(GL_LINES); //画线函数 glRotatef...命令立即执行,而不是让它们在缓冲区中等待 } void init(void) { glClearColor(1.0, 1.0, 1.0, 1.0); //清理颜色,为白色,(也可认为是背景颜色...GLUT_DEPTH);//设置双缓存 //GLUT_RGB表示使用RGB颜色,GLUT_SINGLE表示使用单缓冲 glutInitWindowPosition(200, 200); //设置窗口在屏幕中的位置...glutInitWindowSize(500, 500); //设置窗口的大小 glutCreateWindow("OpenGL时钟"); //设置窗口的标题 init()
文章目录 一、不同类型矩阵变换先后顺序 二、渲染前不设置单位阵 三、矩阵的压栈和出栈原理分析 四、矩阵的压栈和出栈代码示例 五、相关资源 一、不同类型矩阵变换先后顺序 ---- 对 OpenGL 中的...固定管线中的重要操作 ; 显卡栈 : 矩阵在显卡中有一个栈 , 该显卡中的栈可以存储 n 个矩阵 ; 栈顶矩阵 : 栈顶的矩阵是 模型视图 ( ModelView ) 矩阵 , 该矩阵的值是 单位阵..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置当前点的大小 glPointSize(5.0f); // 设置线的宽度...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin...(GL_LINE_STRIP);// 绘制前后连接的点组成的线 //glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连 //glBegin
学习这篇: 文章的大前提是,你得有《OpenGL ES 2.0 (iOS): 一步从一个小三角开始》的基础知识。 本文核心目的就是熟练图形的分析与绘制 零、目标+准备 目标 ?...~v4( 5 ) = 5 0.工程目录 完整的线元工程在,这一章的结尾; ?...绘制单一、交叉的线 ?...函数是修改线的宽度的; glDrawElements是绘制下标的方法;这里不需要用到,所以先不解释; 修改图形显示 // 位于 VFVertexDatasManager 类中 /** *...OpenGL 是以点为基础进行图元的绘制的,那么只要有一个方法动态地根据固定点去控制之间曲线点的生成,问题就解决了。
本文链接:https://blog.csdn.net/daoer_sofu/article/details/48548659 ###1.Opengl GLSL:Opengl着色器语言,在GPU上执行的可编程渲染管线...OpenGL 1.0 版本中,支持固定管线,而 OpenGL 2.0 版本不再支持固定管线,只支持可编程管线。OpenGL ES是Opengl子集,支持嵌入式设备。...版本(否则有一些异常问题出现) OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台工具库 OPenGL...分为:核心模式(不支持以前版本)和兼容模式(支持以前版本的函数) 状态变量: 1.Opengl State Value,保存Opengl中的相关参数设置,如glClearColor设置清除颜色保存在...glLineWidth) GL_POLYGON_SMOOTH_HINT(多边形采样) glLineStipple线的点化处理(虚线等) 线的模糊处理,消除锯齿glEnable(GL_BLEND
中同样可以使用glut来创建窗口,语法遵从Python,但是大体上的结构还是和c语言的glut库差不多。...在OpenGL织梦之旅【第二章】第2节.实现动画这篇博文中,我用c语言,用OpenGL实现了一个显示时钟的程序。...在Update函数中给他们更新值的时候需要用global关键字来声明一下。 2.三角函数。记得import math,调用的时候也要用math.cos和math.sin。 3.变量的数据类型。...因为Python中不需要事先声明变量类型,所以有些值在赋值时需要注意,如果是浮点实数,但值需要暂时赋为一个整数时,需要在后面加上.0。如count=60.0 4.缩进的问题。...在Python中代码段是用缩进来标示的。在c语言的OpenGL中,我习惯性地把glBegin(XXX)后定点的语句缩进一下,但是这个在Python中是会出现问题的。
, 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置当前点的大小 glPointSize(5.0f); // 设置线的宽度...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin...(GL_LINE_STRIP);// 绘制前后连接的点组成的线 //glBegin(GL_LINE_LOOP); // 绘制前后连接的点组成的线 , 并且收尾相连 //glBegin..., 每次都使用白色绘制 glColor4ub(255, 255, 255, 255); // 设置当前点的大小 glPointSize(5.0f); // 设置线的宽度...glLineWidth(5.0f); //glBegin(GL_POINTS); // 绘制点 //glBegin(GL_LINES); // 绘制线 //glBegin
通常,为了适应不同宽高比的屏幕,在设置视口时,会根据屏幕宽高比调整视景体(增加宽度或高度)。 五、视点 现实生活中,人们看到的三维空间物体的样子取决于观察者站在什么角度去看。...库前缀表示该函数属于 OpenGL 哪一个开发库。从函数名后面中还可以看出需要多少个参数以及参数的类型。I 代表 int 型,f 代表 float 型,d 代表 double 型,u 代表无符号整型。...由于glut中的窗口管理函数是不依赖于运行环境的,因此OpenGL中的工具库可以在X-Window、Windows NT、OS/2等系统下运行,特别适合于开发不需要复杂界面的OpenGL示例程序。...这部分函数主要用于连接OpenGL和Windows ,以弥补OpenGL在文本方面的不足。Windows专用库只能用于Windows环境中。...我们通常不会在绘制函数里面传送这些数据,而是在绘制之前,将这些数据提前传送到GPU。绘制函数每次绘制时,只需要从GPU的缓存中取出数据即可,极大地提高了效率。
简述 绘图的步骤:(在drawRect函数中) 1.获取绘图上下文 2.创建并设置路径 3.将路径添加到上下文 4.设置上下文状态 5.绘制路径 6.释放路径 在使用Core Graphics...#2.kCGLineCapRound该属性值指定绘制圆形端点, 线条结尾处绘制一个直径为线条宽度的半圆 #3.kCGLineCapSquare该属性值指定绘制方形端点。...线条结尾处绘制半个边长为线条宽度的正方形。...CGContextFillRect 补充当前填充颜色的rect CGContextSetAlaha 透明度 CGContextTranslateCTM 改变画布位置 CGContextSetLineWidth 设置线的宽度...CGPathApply 每个元素的图形路径中,调用一个自定义应用功能。 CGPathMoveToPoint 开始在一个可变的图形路径指定一个位置,一个新的子路径。
领取专属 10元无门槛券
手把手带您无忧上云