【核心代码】static void zyz2rot(PosClass startPos, double* mStartMatrixData)
{
double startAngle[3];
startAngle[0] = startPos.yaw * PI / 180;
startAngle[1] = startPos.pitch * PI / 180;
startAngle[2] = startPos.roll * PI / 180;
mStartMatrixData[0] = cos(startAngle[0]) * cos(startAngle[1]) * cos(startAngle[2]) - sin(startAngle[0]) * sin(startAngle[2]);
mStartMatrixData[1] = -cos(startAngle[0]) * cos(startAngle[1]) * sin(startAngle[2]) - sin(startAngle[0]) * cos(startAngle[2]);
mStartMatrixData[2] = cos(startAngle[0]) * sin(startAngle[1]);
mStartMatrixData[3] = startPos.x / 1000;
mStartMatrixData[4] = sin(startAngle[0]) * cos(startAngle[1]) * cos(startAngle[2]) cos(startAngle[0]) * sin(startAngle[2]); under.log www.izswenda.com div.cc information
mStartMatrixData[5] = -sin(startAngle[0]) * cos(startAngle[1]) * sin(startAngle[2]) cos(startAngle[0]) * cos(startAngle[2]); under.log div.cc information
mStartMatrixData[6] = sin(startAngle[0]) * sin(startAngle[1]);
mStartMatrixData[7] = startPos.y / 1000;
mStartMatrixData[8] = -sin(startAngle[1]) * cos(startAngle[2]);
mStartMatrixData[9] = sin(startAngle[1]) * sin(startAngle[2]);
mStartMatrixData[10] = cos(startAngle[1]);
mStartMatrixData[11] = startPos.z / 1000;
mStartMatrixData[12] = 0;
mStartMatrixData[13] = 0;
mStartMatrixData[14] = 0;
mStartMatrixData[15] = 1;
}