【发布时间】:2020-04-06 03:47:44
【问题描述】:
给定两个在笛卡尔坐标 x、y、z 中位置随时间变化的移动点/粒子,如下所示,我如何将其中一个点居中并计算第二个点的结果位置,同时保持它们的相对距离和方向常数?
# Given the absolute positions of point 1 (p1) and point 2 (p2):
p1 = [
[7.74, 9.48, 9.61],
[7.02, 8.83, 9.42],
[7.91, 9.08, 9.56],
[8.61, 8.92, 9.50],
[8.87, 9.35, 9.63],
[7.77, 9.83, 9.86]
]
p2 = [
[7.90, 10.48, 10.2],
[8.30, 10.74, 9.59],
[8.23, 10.24, 9.86],
[8.15, 10.42, 9.91],
[8.05, 10.44, 9.92],
[8.4, 10.78, 10.04]
]
# Center p1. It does not necessarily have to be at (0, 0, 0).
p1 = [
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0],
[0, 0, 0]
]
# Translate p2 so its relative position (distance & orientation) relative to p1 remains constant.
p2 = []
直观地说,我会尝试找到转换的平移和旋转矩阵。我查看了scipy.spatial,但找不到解决问题的方法(至少我可以理解)。
我将如何尝试解决这个问题?
编辑 1:
假设两个点彼此独立移动,因此它们的距离+方向不应该是恒定的。我的目标是检验这个假设:这些点是否会相互影响。
具体来说,我想计算点 2 相对于点 1 的密度,但是为了使这个计算有意义,我需要先固定点 1。希望这能进一步澄清问题。
【问题讨论】:
-
我不明白:点 1 和点 2 给出的坐标表明 2 点的相对距离和方向不是恒定的。你能澄清一下吗?
-
没错。假设两个点彼此独立移动,因此它们的距离+方向不应该是恒定的。我的目标是检验这个假设:这些点是否相互影响。具体来说,我想计算点 2 相对于点 1 的密度,但是为了使这个计算有意义,我需要先固定点 1。希望这可以澄清问题。我还编辑了我的问题以添加此说明。
-
你不需要简单地从
p2元素中减去p1吗? -
我刚刚做了一些测试,看来你是对的。我真的没想到问题会这么简单。我会进一步研究这一点,但现在看来,我所要做的只是元素减法。
标签: python numpy scipy linear-algebra scipy-spatial