在c++中绘制填充立方体,崩溃,没有有用的错误可以跟踪
Drawing a filled cube in C++, crashes out, no useful error to trace
好的,所以我跟随Chili的一组教程。我们的作业是为填充的立方体创建代码。我做了这个。然后我试着把它化简成一个函数。现在它编译没有错误,但当我试图运行它时崩溃了。这个东西我看了很久了,还是不知道哪里不对。我马上会把这个和Chili的做比较。但我希望这里能有一双新的眼睛。我认为正在发生的事情是另一个模糊和奇怪的c++定律,根本没有意义。但这里可能有逻辑错误。
请注意,我从函数中取出代码并将其转换回普通的c++语句。
int xN = 200;
int yN = 100;
int xP = 600;
int yP = 500;
while(xN <= xP)
{
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
xN++;
}
yN++;
}
我很感激你的帮助!更新!好了,我修改了代码。为xP和yP创建了两个用户变量(常量值)。我之前没有画一个填充的立方体。原来是范围之类的问题。如果我在循环外声明这两个变量,什么都不会发生。只有当我在使用它的循环外声明每个变量时,它才会起作用。所以现在我必须把它变成一个函数…
int xN = 200;
while(xN <= xP)
{
int yN = 100;
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
yN++;
}
xN++;
}
好的,如果有人想知道这是我如何创建函数的(结果我需要两个):
void Game::DrawCubeX(int xN, int yN)
{
while(xN <= xP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
xN++;
}
}
void Game::DrawCubeY(int xN, int yN)
{
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
DrawCubeX(xN, yN);
yN++;
}
}
由于某些原因无法嵌套循环。如果有更好或更优雅的方法来使用while循环,请告诉我。
谢谢!
我认为它在内部while循环中。循环永远不会终止,因为条件(yN<=yP)
总是恰好是true
。yN++
应该在内循环中,因此在循环结束时,变量yN++
增加yN
,当yN
为> yP
时,循环终止。
xN++
应替换为yN++
。换句话说,代码应该是:
int xN = 200;
int yN = 100;
int xP = 600;
int yP = 500;
while(xN <= xP)
{
while(yN <= yP)
{
gfx.PutPixel(xN, yN, 100, 150, 255);
yN++;
}
xN++;
}
每次通过循环时都需要重置y
:
int const xN = 200;
int const yN = 100;
int const xP = 600;
int const yP = 500;
for(int x = xN; x <= xP; ++x)
{
for(int y = yN; y <= yP; ++y)
{
gfx.PutPixel(x, y, 100, 150, 255);
}
}
在内循环中,应该是yN ++;
;在外循环中,应该是xN++
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 如果我在 Xbox UWP 应用程序上收到激活错误并且错误消息中没有任何有用的内容,该怎么办
- 是否可以进行编译,以使错误的std::vector访问调用退出程序,并显示有用的错误消息
- C 程序对我有用,但在线显示运行时错误
- 在c++中绘制填充立方体,崩溃,没有有用的错误可以跟踪
- visualis除以零并伴有运行时错误,这在c++中非常有用