unity(Vuforia)坐标系问题

1,在场景中的左手坐标系,xyz 对应RGB红绿蓝的颜色。

2,用两个码A,B时,如果需要把A的坐标转化到B下,则应

  把Vuforia的世界坐标选在相机时

Matrix4x4 extinsic_A = A.transform.localToWorldMatrix;
Matrix4x4 extinsic_B = B.transform.localToWorldMatrix;

Matrix4x4 relat = extinsic_A.inverse * extinsic_B;

Vector4 controlPoint = new Vector4(A.transform.position.x,A.transform.position.y, A.transform.position.z, 1.0f);
Vector4 new_controlPoint = relat * controlPoint;

Ax0 = new_controlPoint.x;
Ay0 = new_controlPoint.y;
Az0 = new_controlPoint.z;

B上关联的坐标点是 ***.transform.position.x/y/z.

// Cpa = Ma*Pa
   Cpb = Mb*Pb
 Cpa = Cpb
Ma*Pa = Mb*Pb
把a上的坐标变换到b上的变换是
Pa = Ma.inverse*Mb*Pb

如果 a是坐标原点则
Ma.inverse*Mb的第四列的x,y,z即只要平稳坐标值 

如果把Vuforia世界坐标选中某一张图片,就不需要转化了,直接能获取,但在使用 *****.transform.localPosition或position时要主意。

猜你喜欢

转载自blog.csdn.net/moonlightpeng/article/details/84146722
今日推荐