原文作者:aircraft

原文链接:https://www.cnblogs.com/DOMLX/p/12054507.html

好多次都是画坐标轴的三条直线画不出来,虽然最后都解决了  但是还是耽误了我超级多时间  因为根本无法调试啊 就一个黑框框  其他图形又能画的出来

看到这种现象 真的是脑袋都要炸了好吧!!!

第一次没有画出来坐标轴直线是在c#的winform界面画坐标轴

我的画图代码大概是这样  先画了obj模型图像  然后 在画坐标轴直线   无论我怎么画都是画不出来 我脑袋都要炸了 就一个黑框框 单独画模型  单独画坐标轴都有图形 一起就不行了

然后各种百度无果后 先画线段坐标轴 在画模型  调换一下两者的顺序  搞定 出来了   总结一下原因:唔。。。。我也不知道原因 可能这个东西有毒吧

fun
{
....
drawObj();
...
drawLine(); }

第二次没有画出来直线 是在c++ 下普通的opengl环境

这次的原因是好像是我画的线段超出了什么什么的范围然后就出不来了   反正百度之后说

加上这个

glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
代码 设置一下什么正投影的 不要用 gluPerspective 设的投影矩阵
好的 又解决了   怎么解决的  我也不知道。。。。唉  我就是个复制粘贴的机器人吧
 
第三次没有画出来坐标轴是在MFC的界面里面画的  这次又是可以画出模型  但是又画不出坐标轴
于是我又用第一次画图像的方法去画  把两个的绘制顺序改了一下  但是没有解决
我的画坐标轴的代码如下:

glLineWidth(5.0f); //设置直线的宽度为2个像素

    glBegin(GL_LINE);
glColor3f(1.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); //绘制线段的起点,这里为相对坐标,即相将glTranslatef移动后的点作为原点
glVertex3f(3000.0f, 0.0f, 0.0f); //确定第一条线段的终点(3,0,0)
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 0.0f); //确定第二条线段的起点(0,0,0)
glVertex3f(0.0f, 3000.0f, 0.0f); //确定第二条线段的终点(0,3,0)
glColor3f(0.0f, 0.0f, 1.0f);
glVertex3f(0.0f, 0.0f, 0.0f);
glVertex3f(0.0f, 0.0f, 3000.0f); glEnd();

随便一看 好像就是很正常的代码  我那什么投影矩阵也设置了  第二步那个

然后这一次是有点绝望了  到底问题出在什么地方????

然后去用别人绘制一条线段的代码 拿来运行了一下  发现线段是可以出来的  天哪 简直就是让我发现了什么新世界 感觉我有救的了

然后我就对比我们两个的代码是有什么地方是不一样的

最后终于找到了

glBegin(GL_LINE);
问题出在这里 他们可以画出线段的代码是glBegin(GL_LINES); 加了个S的 我想原因应该是我画的是坐标轴 有好多直线 所有要加个S?????? 唉opengl真是太复杂 经常动不动就是一个黑框框给你 头疼

若有兴趣交流分享技术,可关注本人公众号,里面会不定期的分享各种编程教程,和共享源码,诸如研究分享关于c/c++,python,前端,后端,opencv,halcon,opengl,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识


 

opengl画不出直线 线段 坐标轴 却能画出其他图形的坑的更多相关文章

  1. 由两点坐标如何画出直线 matlab

    由两点坐标如何画出直线  方法1:利用直线方程 斜率加截距 方法2:数据拟合 %由两点坐标得数据拟合直线与画线 x = [,]; y = [,]; k = ((-)/(-));% 由两点坐标得到直线斜 ...

  2. OpenGL学习-------点、直线、多边形

    上一课中,我们学习了如何绘制几何图形,但大家如果多写几个程序,就会发现其实还是有些郁闷之处.例如:点太小,难以看清楚:直线也太细,不舒服:或者想画虚线,但不知道方法只能用许多短直线,甚至用点组合而成. ...

  3. 【十天自制软渲染器】DAY 02:画一条直线(DDA 算法 & Bresenham’s 算法)

    推荐关注公众号「卤蛋实验室」或访问博客原文,更新更及时,阅读体验更佳 第一天我们搭建了 C++ 的运行环境并画了一个点,根据 点 → 线 → 面 的顺序,今天我们讲讲如何画一条直线. 本文主要讲解直线 ...

  4. 平面上画n条直线,最多能将平面分成多少部分?

    转自:http://blog.csdn.net/cywosp/article/details/6724522 在一个平面上画1999条直线,最多能将这一平面划分成多少个部分? 没有直线时有一个空间:( ...

  5. hough变换是如何检测出直线和圆的?

    (I)直线篇 1 直线是如何表示的?对于平面中的一条直线,在笛卡尔坐标系中,常见的有点斜式,两点式两种表示方法.然而在hough变换中,考虑的是另外一种表示方式:使用(r,theta)来表示一条直线. ...

  6. matlab(4) Logistic regression:求θ的值使用fminunc / 画decision boundary(直线)plotDecisionBoundary

    画decision boundary(直线) %% ============= Part 3: Optimizing using fminunc =============% In this exer ...

  7. java异常处理:建立exception包,建立Bank类,类中有变量double balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount),当取款的数额大于存款时,抛出InsufficientFundsException,取款数额为负数,抛出NagativeFundsException,如new Bank(100),

    建立exception包,建立Bank类,类中有变量double  balance表示存款,Bank类的构造方法能增加存款,Bank类中有取款的发方法withDrawal(double dAmount ...

  8. [转][TFS] 禁止默认允许多人签出和强制解除签入签出锁

    转自:http://blog.xieyc.com/tfs-disable-multiple-check-out-and-force-to-undo-locking/ | 小谢的小站 [TFS] 禁止默 ...

  9. 请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框。程序可以判断出用

    请写出一段JavaScript代码,要求页面有一个按钮,点击按钮弹出确认框.程序可以判断出用 户点击的是“确认”还是“取消”. 解答: <HTML> <HEAD> <TI ...

随机推荐

  1. 【JMX】jmx结合jmx_exporter实现promethues监控

    JMX JMX的全称为Java Management Extensions. 顾名思义,是管理Java的一种扩展.这种机制可以方便的管理.监控正在运行中的Java程序.常用于管理线程,内存,日志Lev ...

  2. 链式栈-C语言实现

    相对于顺序栈的空间有限,链式栈的操作则更加灵活 #include<stdio.h> #include<malloc.h> typedef int SElemType; //元素 ...

  3. Hello! 第一篇博客!

    我在博客园开通博客啦 :) 欢迎大家来关注和玩耍,和我互动, Follow 我! 我关心算法和Python!

  4. tp5实现支付宝电脑支付(详解)

    首先吐槽一下支付宝的官方文档,它只是简单介绍一下开发的流程和参数,而对于新人来说如果只看它的官方文档很多时候是看不懂的,我也是边看文档边网上查资料才把它弄懂.下面我详细介绍支付宝的电脑支付是如何实现 ...

  5. 了解 MongoDB 看这一篇就够了【华为云分享】

    目录 一.简介 二.基本模型 BSON 数据类型 分布式ID 三.操作语法 四.索引 索引特性 索引分类 索引评估.调优 五.集群 分片机制 副本集 六.事务与一致性 一致性 小结 一.简介 Mong ...

  6. Python异常处理与上下文管理器

    Python异常处理 异常与错误 错误 可以通过IDE或者解释器给出提示的错误opentxt('a.jpg','r') 语法层面没有问题,但是自己代码的逻辑有问题if age>18: print ...

  7. 华为云备案服务全面升级,EI助力带来极速体验

    华为云备案"电子化核验"正式发布,备案更轻松.更快捷.自2019年9月12日起,华为云用户申请办理ICP备案可以通过华为云APP进行"ICP备案主体真实身份信息采集&qu ...

  8. MyBatis系列(一) MyBatis入门

    前言 MyBatis官方文档:https://mybatis.org/mybatis-3/zh/index.html MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由 ...

  9. 使用Python进行防病毒免杀

    很多渗透工具都提供了权限维持的能力,如Metasploit.Empire和Cobalt Strike,但是都会被防病毒软件检测到这种恶意行为.在探讨一个权限维持技巧的时候,似乎越来越多的人关注的是,这 ...

  10. kubernetes学习笔记(三)——利用kubeadm部署集群

    文章目录 (一)安装前准备 (二)master安装 1.安装组件 2.排错 (三)node安装 1.安装组件 2.加入master 3.排错 (四)网络安装 (五)dashboard安装 (一)安装前 ...