围绕球体(地球)绘制轨迹(线)
Draw a trajectory (lines) around a sphere (earth)
我想画一个围绕球体的轨迹。每个点都由纬度和经度坐标组成。所以,我要通过做第一个旋转(长),然后做第二个旋转(纬度),然后平移(z)来放置每个点。
但如果我在glBegin()
和glEnd()
之间做任何变换,我就不能画线。。。这是被禁止的。。
你知道怎么做吗?我是否必须自己从lat/lon/alt计算每个点(x,y,z)的坐标,而不是进行变换?(我读到转换比自己完成工作更快…)
除非你想上传一个为你做转换的vertexshader,否则你必须这样做。此外,自OpenGL 3.0以来,glRotate等函数实际上已被弃用。
"慢"是相对的。我很确定,使用glRotate()等调用进行旋转比只计算每个顶点在三维空间中的位置要慢。
与此相关的是,如果这是一条轨迹,你几乎肯定想沿着地球上的一个大圆走,而不是在三维空间中将它们画成直线。
只需对轨迹上的点进行采样,并将其绘制为GL_LINE_STRIP。
以下是一些重要信息:不要使用OpenGL固定函数矩阵堆栈(glRotate、glTranslate、glScale等)。使用它很麻烦,使用真正的矩阵数学库会变得容易得多。此外,固定功能已从现代OpenGL中删除。这就引出了我的第二条建议:不要使用即时模式(glBegin…glEnd),它是一个性能杀手,也已从现代OpenGL中删除。
相关文章:
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- SFML 文本未绘制在窗口上
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- 将一些点绘制为来自video/c++的跟踪轨迹
- 绘制opencv中多个移动对象的轨迹
- 绘制台球轨迹,不带容器
- 在 2D 坐标系上绘制曲线轨迹
- 用飞行轨迹绘制地球仪
- 围绕球体(地球)绘制轨迹(线)
- 当拇指轨迹被正确地重新绘制时,滚动条箭头不会被重新绘制
- 使用注释绘制视频中对象的轨迹![公开简历]