使用向量的向量在OpenGL中绘制地面
use vector of vectors to draw a ground in opengl
>我将向量初始化为:
vector<vector<GLfloat> > ground_vertices {
{-10, -0.1, 50},
{10, -0.1, 50},
{-10, -0.1, -300},
{10, -0.1, -300} };
我的绘图功能是这样的
void Ground() {
glBegin(GL_QUADS);
for (int i=0; i < 4; i++)
{
glColor3f(0.0f, 1.0f, 0.0f);
glVertex3f(ground_vertices[i]);
}
glEnd();
}
但我不断得到
ground.cpp|37 col 40 error| 无法将value_type__alloc_traits>__gnu_cxx参数 '1' 的 'GLfloat {aka float}' 转换为 'void glVertex3f(GLfloat, GLfloat, GLfloat, GLfloat)'
我想知道如何解决它。谢谢!
使用函数glVertex3fv(const GLfloat * v)
并将指向顶点数据的指针传递给它。
您可以通过std::vector::data
以下方法获取指向std::vector
中包含的数据的指针:
glVertex3fv(ground_vertices[i].data());
请注意,使用glVertex3f(GLfloat x, GLfloat y, GLfloat z)
的正确编码是:
glVertex3f(
ground_vertices[i][0],
ground_vertices[i][1],
ground_vertices[i][2]);
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 如何通过派生类函数更改基类中的向量
- C++从另一个类访问公共静态向量的正确方法是什么
- 如何将ampl中的集合表示为c++中的向量
- 变量没有改变?通过向量的函数调用
- 迭代时从向量和内存中删除对象
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- 创建要在类中使用的向量向量,并使用 CERNROOT 绘制
- C++ SFML 创建形状向量并在函数中绘制它们
- 使用向量的向量在OpenGL中绘制地面
- 从Sprites SFML的向量中绘制
- 如何在C++中创建一个网格,这将允许我将每个索引设置为一个向量,以便以后操作该向量,然后绘制它
- 绘制一个向量<glm::vec3> opengl c++
- 在向量中包含的点之间绘制线(VC++)