基本上我有两个变量:
double halfWidth = Width / 2;
double halfHeight = Height / 2;
Run Code Online (Sandbox Code Playgroud)
当它们被除以2时,它们将是整数或小数.如何检查它们是整数还是.5?
在我的OpenGL应用程序中,我有一个使用键盘(移动)和鼠标(环顾四周)控制的相机.
到目前为止,每个人都做得很好,我注意到如果我将相机在Y轴上移动到300以上,那么当移动鼠标时它会开始变得混乱.例如,如果我转到Y = 310,并且向上移动鼠标,当它开始向上看时,它也会开始向左转.
我不确定这是什么原因.有人可以帮忙吗?
下面是代码,为gluLookAt()提供前向和上升位置
双cosR,cosP,舒适; //来自双sinR,sinP,sinY的sin/cos的临时值; //输入的滚动/俯仰/偏航
if(Yaw > 359) Yaw = 0;
if(Pitch > 359) Pitch = 0;
if(Yaw < 0) Yaw = 359;
if(Pitch < 0) Pitch = 359;
cosY = cosf(Yaw*3.1415/180);
cosP = cosf(Pitch*3.1415/180);
cosR = cosf(Roll*3.1415/180);
sinY = sinf(Yaw*3.1415/180);
sinP = sinf(Pitch*3.1415/180);
sinR = sinf(Roll*3.1415/180);
//forward position
forwardPos.x = sinY * cosP*360;
forwardPos.y = sinP * 360;
forwardPos.z = cosP * -cosY*360;
//up position
upPos.x = -cosY * sinR - sinY * sinP * …Run Code Online (Sandbox Code Playgroud) 目前我有几个类,其数组定义为'float myIDs'.我想将变量移动到我的父类中并将其更改为指针('float*myIDs').
目前我正在宣布其价值如下:
float myIDs[] = {
//Variables
};
Run Code Online (Sandbox Code Playgroud)
由于它现在是一个指针,我认为它将大致相同:
myIDs = new float[] = {
};
Run Code Online (Sandbox Code Playgroud)
但这似乎并没有起作用.我不知道如何解决这个问题,因为我以前从未必须像这样声明一个指针数组.
有人可以帮我吗?
谢谢
不知道我哪里出错了..我有两个类似的:
class One
{
public:
vector<Object*> myObjects;
};
class Two
{
public:
vector<Object*> * pointertoObjects;
};
Run Code Online (Sandbox Code Playgroud)
然后我想创建一个从pointertoObjects到myObjects的指针,我这样做:
pointertoObjects = &myObjects;
Run Code Online (Sandbox Code Playgroud)
但是当我尝试访问传递元素时:
void doFunction(Object * object);
doFunction(pointertoObjects[i])
Run Code Online (Sandbox Code Playgroud)
它给了我一个错误:
Error: no suitable conversion function from std::vector<Object *, std::allocator<Object *>>" to "Object *" exists
Run Code Online (Sandbox Code Playgroud)
我哪里出错了?