jPCTでルービック キューブを作成しましたが、このキューブ全体を回転させる必要があります。回転行列でこれを達成しようとしましたが、単一の立方体要素を回転させましたが、これは良い方法ではないようです..
そのため、立方体を回転させるのではなく、立方体の周りでカメラを回転させたいと考えています。とても簡単ですが、問題は、jPCT がカメラの向きをランダムに変更するか、別の間違いを犯してしまい、修正できないことです。
SimpleVector cameraPos = new SimpleVector(-20, 0, 0);
SimpleVector cubeCenter = new SimpleVector(2, 2, 2);
while (!org.lwjgl.opengl.Display.isCloseRequested()) {
refreshScene();
// Camera position is repeatedly rotated
cameraPos.rotateAxis(new SimpleVector(0, 0, 1), (float) Math.toRadians(1));
// Here I set camera position
world.getCamera().setPosition(cameraPos);
// Camera looks at the center of cube, but unfortunately
// not with fixed orientation
world.getCamera().lookAt(cubeCenter);
try {
Thread.sleep(50);
} catch (InterruptedException e) {
}
}
上記のコードは、キューブのこの奇妙な回転を実行します:
それはクールですが、次のようにキューブを回転させる必要があります。
メソッドでカメラの向きを設定しようとしましたsetOrientation
:
SimpleVector upVector = world.getCamera().getUpVector();
upVector.scalarMul(-1.0f);
world.getCamera().setOrientation(world.getCamera().getDirection(), upVector);
このコードの最後の行は、カメラの向きを逆さまにする必要がありますが、何もしません。jPCT の最新バージョンを使用しています。
カメラの向きを正しくするにはどうすればよいですか? どんな助けでも大歓迎です!