在一个特定的坐标系中,我的电子表格中有一个点云,云是这样的格式:Name X Y Z PT1 X1 Y1 Z1 PT2 X2 Y2 Z2 PT3 X3 Y3 Z3 PT4 X4 Y4 Z4 ... PTi Xi Yi Zi ...
,我想使用列表中的四个第一个点来构造一个新的坐标框架,并在新的框架中转换我的所有点。
新的坐标框架必须定义为平面直线点(或3-2-1°变换):
总之,起源(0,0,0)将在中点(PT1-PT2).新的X轴是向量中点(PT1-PT2)到中点(PT3-PT4).Y轴包含在平面上,垂直于X,Z垂直于X和Y。
现在我能找到平面和X,Y,Z轴的方程。
我的问题是如何根据这些参数构造转换矩阵,并使用excel公式实现。
谢谢。
发布于 2016-08-15 15:31:48
我试着回答,把任务分成五个部分。我将称x,y,z为以O和X,Y,Z为中心的旧轴,你们的新轴以P为中心。
试图为第一次尝试保存部分结果为空单元格。我不能给你一个唯一的公式来回答你的问题。。
a)泛型转换是一种旋转翻译。你在P点找到了你的新来源地(你有坐标)。假设你的“旧原点”是O=(0,0,0,0),我可以简单地说,在这两个系统中,从旧原点到新原点的转换是向量P的d=x-P--欧几里得范数,在excel中很容易计算(我不知道是否有函数,我会使用Pythagoras定理)。有人试图构建用户定义的宏这里。
现在有了平移向量(t1,t2,t3),您就可以为旧的轴设置一个新的原点,而不需要旋转它们。请注意这个符号,但它是一个简单的翻译公式(参见示例:如果x= x‘+ t1然后x’=x- t1),请考虑哪个是x‘,在您的情况下哪个是x’,尝试使用一个简单的点(1,0,0),并观察您的选择是否正确。做所有你点的翻译(即: PT1_t,PT2_t.)现在,在XYZ e xyz之间有一个中间参考系统。让我们称之为"pqr“
( c)现在,您的参考系统pqr和XYZ仅在旋转角度上不同。在建立旋转矩阵之前,你必须先决定哪个轴会旋转。最好是使用归一化向量(除以每个向量的范数),假设pqr系统和XYZ的旋转是(最多)3围绕固定轴旋转的组合。例如
总旋转是R= RX * RY * RZ,一个矩阵乘积。如何找到旋转?(按照我的轮换顺序不是强制性的!)您可以构建自己的序列,但XYZ、ZYX和ZXZ是最著名的)。
( d)每个矩阵都需要一个角度。第一个角度是在XZ平面上p与其投影之间的夹角。第二个角度是p‘(= RZ * p)和X之间的角度,第三个角度是q'’(= RY * q‘= RY * RX * q)和Y之间的角度,它必须等于r’和Z之间的角度。矩阵可以这样构造(如果A是一般角)。
RX = [1 0 0
0 cos(A) -sin(A)
0 sin(A) cos(A)]
检查RY和RZ 在这个链接上,但是要注意:正如我们前面所说的,A是一个方向的旋转角度,所以你可能需要-A来旋转。一般来说,A是从旧轴到新轴的角度,正A是逆时针方向。
要计算角度A,使用简单的公式暴露在这里。Excel有所有的性腺测量公式(余弦,阿卡卡索.)你需要的。
( e)当您发现三个矩阵RY RZ与旧的pqr轴旋转时,您的新XYZ系统中的每个单点PTi‘都是从PTi’=R* PTi_t中得到的,您可以使用MMULT函数在此解释构建矩阵积。
对不起,这是我作为一个简单的学生唯一知道的系统。我希望它能帮到你。
https://stackoverflow.com/questions/33271360
复制相似问题