Java 保持X、Y、Z位置时的libGDX圆锥旋转
我试图通过创建一个圆锥体并围绕X/Y旋转来创建某种“灯塔”效果。如果同时存在偏航和俯仰角度,则结果在Z轴上“运行”,在Y/X轴上也是错误的。Java 保持X、Y、Z位置时的libGDX圆锥旋转,java,opengl,graphics,libgdx,Java,Opengl,Graphics,Libgdx,我试图通过创建一个圆锥体并围绕X/Y旋转来创建某种“灯塔”效果。如果同时存在偏航和俯仰角度,则结果在Z轴上“运行”,在Y/X轴上也是错误的。 (Z轴从右向左,X向屏幕,Y向上)。 黄色圆锥体就是效果。它从透明圆锥体开始 这是设定圆锥体的x、y、z位置的方法: float c = this.height/2; this.locationX = player.getPosition().x - c*((float)Math.sin(Math.toRadians(tiltOnY)));
(Z轴从右向左,X向屏幕,Y向上)。 黄色圆锥体就是效果。它从透明圆锥体开始 这是设定圆锥体的x、y、z位置的方法:
float c = this.height/2;
this.locationX = player.getPosition().x - c*((float)Math.sin(Math.toRadians(tiltOnY)));
this.locationY = player.getPosition().y + c*((float)Math.sin(Math.toRadians(tiltOnX)));
this.locationZ = player.getPosition().z-c;
其中,高度是圆锥体的高度,倾斜从0开始,通过360度模块增加或减少(作为输入的结果)。
这是render中的代码:
inst = new ModelInstance(this._game_.viewConeModel);
inst.transform.setToTranslation(cone.getX(),cone.getY(),cone.getZ())
.rotate(Vector3.Y,cone.getTiltOnY()).rotate(Vector3.X,cone.getTiltOnX()).rotate(Vector3.X,90);
this._game_.modelBatch.render(inst,this._game_.environment);
理想的结果是圆锥体的点保持在相同的位置,但圆锥体本身在X轴和Y轴上通过倾斜旋转。您是否尝试过其他
旋转
或设置旋转
版本?