![[Java] [OpenGL ES3.2] 环绕相机,第1张 [Java] [OpenGL ES3.2] 环绕相机,第1张](/aiimages/%5BJava%5D+%5BOpenGL+ES3.2%5D+%E7%8E%AF%E7%BB%95%E7%9B%B8%E6%9C%BA.png)
public Camera setOrbit(float angleX,float angleY,float distance) {
float y = (float)Math.sin(Math.toRadians(angleY)) * distance;
float h = (float)Math.cos(Math.toRadians(angleY)) * distance;
float x = (float)Math.sin(Math.toRadians(angleX)) * h;
float z = (float)Math.cos(Math.toRadians(angleX)) * h;
mPosition = new Float3(x,y,z);
return this;
}
思路
一开始的时候是x=sin(angleX),y=sin(angleY),z=cos(angleX),发现Y轴的视野上不去,于是改变思路
通过sin和cos求出y以及x,z轴上的斜边h,再分别乘上angleX的sin和cos,得到x,z坐标
p.s.h是BC的值
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)