原文作者: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. win10 objectarx向导在 vs2015中不起作用的解决办法

    我用autocad2018+vs2015+win10 安装好了objectarx向导模板之后,新建一个c++插件项目就这样: 但是打开之后会创建失败,这个时候就需要更改.props文件里的sdk路径. ...

  2. Java继承、构造、重写

    Music mu=new Music(); Musc m=mu;//地址一样   继承:Java只支持单继承,不支持多继承. Java支持多层(重)继承(继承体系). 如果类之间存在着:is a 的关 ...

  3. Python面试的一些心得,与Python练习题分享

    关于基础 项目打算招聘一个自动化运维,主要需求是python.Linux与shell脚本能力.但面试几天发现一些问题: 简历虚假 这个不管哪行,简历含水量大都是普遍存在的,看简历犀利的一比,一面是能力 ...

  4. JQuery之选择集过滤

    JQuery选择集过滤应用如下: 代码实现: <script src="JS/jquery-3.4.1.js"></script> <script&g ...

  5. mysql 授权用户 主从和备份

    1.授权用户 mysql -uroot -p123qqq...A                     进入数据库 grant   all     on     *.*     to   dc@&q ...

  6. JetBrains 迷你地图插件 CodeGlance

    JetBrains 本身不带迷你地图功能,但可以通过插件的形式来实现. 直接在 Settings 里边搜索 CodeGlance,安装后重启 IDE 就有了.

  7. 【CKB.DEV 茶话会】第二期:聊聊 CKB 钱包和 Nervos DAO 全流程

    CKB.DEV 茶话会第二期:聊聊 CKB 钱包和 Nervos DAO 全流程 为了鼓励更多优秀的开发者和研究人员参与到 CKB 的开发和生态建设中去,我们希望组织一系列 CKB Developer ...

  8. iOS开发-CoreMotion框架

    转自: CoreMotion是一个专门处理Motion的框架,其中包含了两个部分 加速度计和陀螺仪,在iOS4之前加速度计是由 UIAccelerometer 类 来负责采集数据,现在一般都是用Cor ...

  9. Xcode 清理存储空间(转)

    一 移除 Xcode 运行安装 APP 产生的缓存文件(DerivedData) 只要重新运行Xcode就一定会重新生成,而且会随着运行程序的增多,占用空间会越来越大.删除后在重新运行程序可能会稍微慢 ...

  10. ST MCU的UID

    ST MCU芯片中的绝大部分都内置一串96位唯一标识码[unique ID].时不时有人问起这个东西,尤其最近感,觉询问它的人甚是热闹.这里跟大家一起简单分享下. 上面说了ST MCU芯片中的绝大部分 ...