0
我有一个正常的默认x,y坐标系。让我们打电话给这个Frame1。 我然后使用以下行来创建一个新的框架:在OpenGL中查找另一帧中一帧的点坐标
glTranslatef(40, 125, 0);
glRotatef(theta, 0.0, 0.0, 1.0); //theta is in degrees here
glTranslatef(-40, -125, 0);
让我们把这个式2。
我在Frame2中有一个点(x,y)
。 现在,我如何知道相对于Frame1的同一点的坐标? 意思是,该点保持静止,但它与Frame1的坐标是什么? 我试过了:
alpha = atan2(Y,X);
hypo = Y/sin(alpha);
alphatheta = alpha + theta; //theta is in radians here and so is alpha
newY = hypo * sin(alphatheta);
newX = hypo * cos(alphatheta);
但这不起作用。我想翻译有一些差异,因为旋转是在(40,125)附近完成的,而不是原点。
那么,我该如何找出newX和newY?如果我在Frame1中绘制(newX,newY),我应该从Frame2得到与(X,Y)相同的点。
或者,我甚至可以用这种方式提问, 如果围绕某个点(a,b)旋转角度theta,相同的东西将围绕原点旋转多少?
感谢秩序的重要性answer..The乘法不能太强调.. – rasalghul