Geometry 如何从一个笛卡尔坐标系转换到另一个笛卡尔坐标系

Geometry 如何从一个笛卡尔坐标系转换到另一个笛卡尔坐标系,geometry,transformation,cartesian,Geometry,Transformation,Cartesian,二维问题:我测量笛卡尔坐标系中三角形三个端点的位置。现在我把这个系统(三角形)移动到另一个笛卡尔系统,然后测量两端的位置。 如何根据这些数据确定第三端的位置 谢谢!(很抱歉把糟糕的英语作为第二个角度)这是一个相当模糊的问题,但如果我读对了,那么你需要的信息就更少了。如果将第一个坐标系转换为第二个坐标系,则将其应用于三个点中的每个点,以找到三个等效点中的每个点 否则,如果你没有转换,我认为这是不可能的。毕竟,一个坐标系的无限多个可能的变换可以导致两点的两个位置相同,而第三点的位置不同。这个问题是8

二维问题:我测量笛卡尔坐标系中三角形三个端点的位置。现在我把这个系统(三角形)移动到另一个笛卡尔系统,然后测量两端的位置。 如何根据这些数据确定第三端的位置


谢谢!(很抱歉把糟糕的英语作为第二个角度)

这是一个相当模糊的问题,但如果我读对了,那么你需要的信息就更少了。如果将第一个坐标系转换为第二个坐标系,则将其应用于三个点中的每个点,以找到三个等效点中的每个点


否则,如果你没有转换,我认为这是不可能的。毕竟,一个坐标系的无限多个可能的变换可以导致两点的两个位置相同,而第三点的位置不同。

这个问题是8年前提出的,但尽管有点模糊,我认为可以相当简洁地回答,如果我遇到了它,那么也许其他人会遇到它,并从一个实际的答案中获得一些好处,而不是被接受的答案。(我很抱歉无意中对接受的“答案”投了更高的票。我本来投了更高的票,但我意识到这个问题实际上有点模糊,并试图推翻我的否决票。不幸的是,由于我的noob代表,这似乎已经转化为实际的否决票。它不值得否决票,但也不值得更高的表决。)

引导 因此,假设您有一个简单的笛卡尔网格或参考框架:

在10x10参考坐标系内,有一个三角形对象:

我没有标记图像,但是这个三角形的(a,b,c)坐标显然是a=(0,0),b=(0,4)和c=(4,0)

现在假设我们在笛卡尔坐标系(网格)内移动该三角形:

我们移动了三角形x=x+1和y=y+1,因此,假设“b”和“c”的新坐标是b=(1,5)和c=(5,1),“a”是什么

很明显,“a”是(1,1),但从数学上看,我们可以看到

Δb=b2-b1

Δb=(x2,y2)-(x1,y1)

Δb=(1,5)-(0,4)

Δb=(1-0,5-4)

∴Δb=(1,1)或(+1,1)

如果我们对两个“c”坐标做相同的处理,我们得到相同的答案,Δc也等于(1,1),因此它是平移(线性运动),而不是旋转,这意味着Δa也是(1,1)!因此:

a2=a1+Δa

a2=(0,0)+(1,1)

a2=(0+1,0+1)∴

∴a2=(1,1)

如果你看一看图像,你可以清楚地看到“a”的新位置在(1,1)

翻译 但这只是个开始。你的问题是从一个笛卡尔坐标系转换到另一个笛卡尔坐标系。考虑到你的10x10参考帧在一个更大的参考帧中:

我们可以将您的10x10网格称为“本地”参考框架,它可能存在于“全局”参考框架内。实际上,在该全局参考系内可能存在许多其他“局部”参考系:

但是为了保持简单,我们当然会在另一个范围内考虑一个笛卡尔坐标系:

现在我们需要在“全球”参考框架内转换“本地”参考框架:

所以,“局部”,我们三角形的(a,b,c)坐标仍然是{(0,0),(0,4),(4,0)},但是我们局部参考系的原点与全球参考系的原点不一致!我们的本地参考坐标已经移动(+3.5,+1.5)

现在三角形的位置是什么

你基本上是用同样的方法来处理的。“局部”参考框架的相对位置为(+3.5,+1.5),我们称之为Δf表示框架中的差异,因此相对于全局原点的三角形为ag=al+Δf,bg=bl+Δf,cg=cl+Δf,其中(ag,bg,cg)为全局参考框架内的坐标,以及(al,bl,cl)是本地参考框架内的坐标

三维笛卡尔坐标系 这是完全一样的,你只需要把第三个“z”坐标包括在三角形的位置上

轮换 我从你的原始问题中做出的一个假设是,在你8年前提出这个问题时,你实际上是在问关于翻译的问题,而对轮换不感兴趣

但是,很快,您需要使用trig在参考帧内旋转2d对象,因此您需要首先确定旋转对象的位置,我们称之为旋转轴。然后,确定旋转轴的位置后,重新计算三角形中三个点的(x,y):

x=r·cosθ

y=r·sinθ

其中θ是旋转物体的角度,“r”是该点到旋转轴的距离,“·”表示乘法

因此,如果我们将三角形逆时针绕点“a”旋转30°,它看起来可能类似于:

但是,这又不是你的问题。你的问题是,“给定两个点的位置,确定第三个点的位置”

没有任何解释,只是因为我不认为你问的是旋转,你做的是反向工作:

如果x=r·cosθ,那么θ=arccos(x/r)

现在你有了旋转角度,你现在可以应用到缺失点的原始位置,找到它的(x,y),就像我们原始的平移例子一样,也可以从一个笛卡尔坐标系到另一个笛卡尔坐标系。这意味着,如果“局部”参照系在全局参照系内旋转,即使局部参照系内似乎没有任何变化,也可以在全局参照系内绘制对象点的位置

同样,这也适用于三维参照系