opengl画不出直线 线段 坐标轴 却能画出其他图形的坑
原文作者:aircraft
原文链接:https://www.cnblogs.com/DOMLX/p/12054507.html
好多次都是画坐标轴的三条直线画不出来,虽然最后都解决了 但是还是耽误了我超级多时间 因为根本无法调试啊 就一个黑框框 其他图形又能画的出来
看到这种现象 真的是脑袋都要炸了好吧!!!
第一次没有画出来坐标轴直线是在c#的winform界面画坐标轴
我的画图代码大概是这样 先画了obj模型图像 然后 在画坐标轴直线 无论我怎么画都是画不出来 我脑袋都要炸了 就一个黑框框 单独画模型 单独画坐标轴都有图形 一起就不行了
然后各种百度无果后 先画线段坐标轴 在画模型 调换一下两者的顺序 搞定 出来了 总结一下原因:唔。。。。我也不知道原因 可能这个东西有毒吧
fun
{
....
drawObj();
...
drawLine();
}
第二次没有画出来直线 是在c++ 下普通的opengl环境
这次的原因是好像是我画的线段超出了什么什么的范围然后就出不来了 反正百度之后说
加上这个
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,机器学习深度学习之类有关于基础编程,图像处理和机器视觉开发的知识
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下