http://www.cnblogs.com/jk1001/archive/2010/08/05/1793216.html 手工编译android
http://www.moandroid.com/?p=712 OpenGL创建流程
http://blog.163.com/my_appy@126/blog/static/118323971200953061819702/ 贝塞尔曲线
http://hi.baidu.com/lsjsuper/blog/item/4ca2c2773584ef08b051b9bd.html
void lookAt(float eyex, float eyey, float eyez,
float orgx, float orgy, float orgz,
float upx, float upy, float upz)
{
//Calculate eye direction vector
float vpnx = orgx - eyex;
float vpny = orgy - eyey;
float vpnz = orgz - eyez;
//Normalize it
float len = sqrt(vpnx * vpnx + vpny * vpny + vpnz * vpnz);
vpnx /= len;
vpny /= len;
vpnz /= len;
//Calculate right vector
float rvx = vpny * upz - vpnz * upy;
float rvy = vpnz * upx - vpnx * upz;
float rvz = vpnx * upy - vpny * upx;
//Calculate new up vector
float nux = rvy * vpnz - rvz * vpny;
float nuy = rvz * vpnx - rvx * vpnz;
float nuz = rvx * vpny - rvy * vpnx;
//Put it all in a pretty Matrix
float mat[16] = {
rvx, nux, -vpnx, 0,
rvy, nuy, -vpny, 0,
rvz, nuz, -vpnz, 0,
0, 0, 0, 1
};
//Apply the matrix and translate to eyepoint
glMultMatrixf(mat);
glTranslatef(-eyex, -eyey, -eyez);
}
void display (void) {
glClear