在细分曲线中,我想用新的更新数组。但这不起作用。
vec2 Bezier[10] = {};
通过在屏幕中单击鼠标来获取初始点。然后,我将创建新的点vec2 umuminoqteler[1000] = {};
,我想用umuminoqteler代替Bezier,因此在下一次迭代中,我可以将umuminoqteler用作初始字母。
我该如何解决? *Bezier=*umuminoqteler
不起作用。
{GLsizei winWidth = 800, winHeight = 600;
float weights[4] = { -1.0 / 6, 4.0 / 6, 4.0 / 6, 1.0/6 };
vec2 Bezier[10] = {};
vec2 yeninoqteler[1000] = {};
vec2 umuminoqteler[1000] = {};
glBegin(GL_LINE_LOOP);
for (int b = 0; b < tezelistsize; b++)
{
glVertex2f(umuminoqteler[b].x, umuminoqteler[b].y);
}
glEnd();
*Bezier = *umuminoqteler;
}
[1]: https://i.stack.imgur.com/PQirB.png
答案 0 :(得分:0)
Bezier
是10个元素的数组,而umuminoqteler
是1000个元素的数组。您无法调整Bezier
的大小。 Bezier
包含数组第一个元素的地址。 *Bezier
是对数组第一个元素的引用。
*Bezier = *umuminoqteler;
类似于
Bezier[0] = umuminoqteler[0];
您可以使用诸如std :: vector之类的动态容器
{
GLsizei winWidth = 800, winHeight = 600;
float weights[4] = { -1.0 / 6, 4.0 / 6, 4.0 / 6, 1.0/6 };
std::vector<vec2> Bezier(10);
std::vector<vec2> yeninoqteler(1000);
std::vector<vec2> umuminoqteler(1000);
glBegin(GL_LINE_LOOP);
for (int b = 0; b < tezelistsize; b++)
{
glVertex2f(umuminoqteler[b].x, umuminoqteler[b].y);
}
glEnd();
// Move
Bezier = std::move(umuminoqteler);
// Or copy
// Bezier = umuminoqteler;
}