我是编程的新手,但我正在努力学习! 我正在尝试更新相机,以便我可以在我的项目中启动3D对象和其他东西。 所以我需要创建2个结构,一个用于Vector3的Vector3。
Vector3 - 有三个浮点数称为x,y和z。
相机 - 有三个Vector3,分别为eye,center和up。
我需要在HelloGL.h文件中定义这些结构并首先定义我的Vector3。 然后我在HelloGL标题中定义了我的Camera指针 但是当我尝试在我的HelloGL构造函数中初始化它时,我得到了错误
“错误:没有构造函数的实例”Camera :: Camera“匹配参数列表”
以下是我认为无效的代码(HelloGL.h和HelloGL.cpp)
(HelloGL.h)
#pragma once
#define REFRESHRATE 16
#define Vector3 Vector3
#include <Windows.h> //Required for OpenGL on Windows
#include <gl/GL.h> //OpenGL
#include <gl/GLU.h> //OpenGL Utilities
#include "GL\freeglut.h" //freeglut library
class HelloGL
{
public:
HelloGL(int argc, char* argv[]);
~HelloGL();
void Display();
void Update();
void Keyboard(unsigned char key, int x, int y);
Camera* camera;
private:
float rotation;
float rotationRect;
float rotationSquare;
float rotationTriangle;
};
class Vector3
{
public:
Vector3(float x, float y, float z);
private:
float x;
float y;
float z;
};
class Camera
{
public:
Camera(Vector3 eye, Vector3 center, Vector3 up);
private:
Vector3 eye;
Vector3 center;
Vector3 up;
};
(HelloGL.cpp)
#include "HelloGL.h"
#include "GLUTCallbacks.h"
HelloGL::HelloGL(int argc, char* argv[])
{
camera = new Camera();
rotation = 0.0f;
rotationRect = 0.0f;
rotationSquare = 0.0f;
rotationTriangle = 0.0f;
GLUTCallbacks::Init(this);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE);
glutInitWindowSize(500, 500);
glutInitWindowPosition(1, 1);
glutCreateWindow("Simple But Lit OpenGL Program");
glutDisplayFunc(GLUTCallbacks::Display);
glutTimerFunc(REFRESHRATE, GLUTCallbacks::Timer, REFRESHRATE);
glutKeyboardFunc(GLUTCallbacks::Keyboard);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glViewport(0, 0, 800, 800);
gluPerspective(45, 1, 0.1, 1000);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glutMainLoop();
}
HelloGL::~HelloGL()
{
}
如果有人可以提供帮助,请提前致谢!
答案 0 :(得分:0)
您只使用以下构造函数定义了一个Camera:
function navigate($path){
$directorio = $_SERVER['DOCUMENT_ROOT'] . '/' . $path;
$scan = scandir($directorio);
return $scan;
}
session_start();
$dir = $_SERVER['DOCUMENT_ROOT'] . '/';
if(ISSET($_POST['datei'])){
echo $_POST['datei'];
$_SESSION['actualdir'] = $dir . $_POST['datei'];
$scanner = navigate($_SESSION['actualdir']);
}
if(!ISSET($_POST['datei'])){
$scanner = scandir($dir);
}
当您使用Camera(Vector3 eye, Vector3 center, Vector3 up);
(默认构造函数)调用它时。你应该添加一个没有参数的构造函数,或者将正确的参数传递给这个构造函数。