我在OpenGL上实现轨迹球旋转时遇到了麻烦.当我使用沿X轴向右旋转90度的轨迹球旋转我的立方体(在屏幕上从左向右拖动鼠标)然后尝试旋转它将鼠标从屏幕的顶部拖动到底部,我希望立方体能够沿着我的视角的y轴旋转.相反,它在旋转后沿着ITS轴旋转,从我的角度向侧面旋转.
有人能告诉我我可能做错了什么吗?
我正在创建一个场景,我使用一个框来表示一个房间和该框内的不同模型.当我启用照明时,我的模型亮起来很好,但房间本身(盒子内部)没有亮起,或者说它比它应该更暗.是因为我试图照亮立方体的内部吗?我确定法线是正确的.请让我知道你在想什么!
我认为法线不正确但我如何找到立方体内部的正确法线.目前,我只是将每个面的中心点传递给normalf函数.
从矢量中取出某些东西并改变其值的最简单方法是什么?这不符合我的预期.
for(int i = 0; i < list.size(); i++) {
someType s = list.at(i);
s.x = 10;
s.y = 20;
s.z = 30;
}
Run Code Online (Sandbox Code Playgroud)
但是,当我打印出someType s的x,y,z时,它并不能满足我的期望.对不起,我正在混淆Java和C++.
我想知道哪种方式更有效率.
没有全局变量,通过参数传递变量,所有方法都是静态的
没有全局变量,只有main方法静态并在main中创建类对象来访问方法
仅使用全局变量,仅使用main方法static并在main中创建类对象以访问方法
我目前正在使用方法3,但我想知道哪些更有效.这个类不会被它之外的任何其他类使用,它几乎是独立的.
我的代码结构示例:
public class myClass {
private int globalVariable;
public static void main(String args[]) {
myClass c;
c.someMethod(); // Changes global variable from method
System.out.println(someMethod); // Prints solution
}
public void someMethod() {...}
}
Run Code Online (Sandbox Code Playgroud) 我注意到在Java中,当您将数组传递给函数时,它会修改原始数组.我试图实现使用递归的回溯方法,我希望每次调用它都有自己的数组复制传入的数组的内容.
例如,假设我有一个原始数组,并且我通过一个调用该函数的循环.我希望每个调用都有一个包含原始数组中所有内容的数组,但它修改的任何内容都保留在其自身内,而不是修改原始数组.这可能吗?
如果有解决方案,那么arraylists也可以吗?