gpt4 book ai didi

c++ - 谢尔宾斯基垫片

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:44:30 33 4
gpt4 key购买 nike

我正在用 C/C++ 编写代码,但遇到错误。

#include "glut.h"
#include <random>

// Classes and structs //
struct GLPoint {
GLfloat x, y;
};

// Method(s) Declration //
void drawDot(GLfloat, GLfloat);
void serpinski_render(void);
void myInti(void);

// Method(s) Implementation //
void drawDot(GLfloat x, GLfloat y){
glBegin(GL_POINTS);
glVertex2i(x, y);
glEnd();
}
void serpinski_render(void)
{
glClear(GL_COLOR_BUFFER_BIT); // Clear the screen from anything is displayed on it
GLPoint T[3] = { { 10, 10 }, { 600, 10 }, { 300, 600 } }; // the three points of parent triangle

int index = rand() % 3; // this mean i will choose a random number between 0 , 3
GLPoint point = T[index];
drawDot(point.x, point.y);

for (unsigned int i = 0; i < 5500; i++) // a loop that going to run 5500 ( a very big number )
{
index = rand() % 3;
point.x = (point.x + T[index].x) / 2;
point.y = (point.y + T[index].y) / 2;

drawDot(point.x, point.y);
}
glFlush();

}
void myInti(void)
{
glClearColor(1, 1, 1, 0); // a white background
glColor3f(0, 0, 0); // black points
glPointSize(3); // 3 pixel point size

glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, 640, 0, 480);
}


// Main Method //
void main(int argc ,char ** argv )
{
glutInit(&argc, argv); // intilize toolkit
glutInitWindowPosition(100, 150);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480); // windows size is 640 x 480
glutDisplayFunc(serpinski_render);

myInti();
glutMainLoop();
}

我不知道它是否能正常工作,但这段代码应该会产生 Sierpinski 三角形。在这种情况下,每次我使用 C++ 库时,我都会遇到 stdlib.h 中的随机库这个问题,这让我很困惑,以前从未遇到过类似的问题

错误 1 ​​错误 C2381:“退出”:重新定义; __declspec(noreturn) 不同于 c:\program files (x86)\microsoft visual studio 12.0\vc\include\stdlib.h 376

最佳答案

glut.h 和 Visual Studio .NET 之间存在不兼容性,这是对“glut.h”和您的情况的用法。你可以通过声明来解决它:

#include <random>
#include "glut.h"

代替:

#include "glut.h"
#include <random>

请阅读this description了解更多信息和另一种解决方案。 (“ header (.h) 文件”部分)

您的代码也可能会因为没有创建窗口而失败。您可以使用 glutCreateWindow 创建一个窗口。您还可以通过如下方式安排主要内容来解决此问题:

void main(int argc ,char ** argv )
{
glutInit(&argc, argv); // intilize toolkit
glutInitWindowPosition(100, 150);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(640, 480); // windows size is 640 x 480
glutCreateWindow("A title");
myInti();
glutDisplayFunc(serpinski_render);

glutMainLoop();
}

另请阅读 this information用于 glutCreateWindow 函数。

关于c++ - 谢尔宾斯基垫片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23666978/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com