Ты действительно слишком много думаешь об этом.Это проще продемонстрировать в 2D, и логика та же:
На рисунке выше у нас есть круг с центром в (0, 0), и точка, расположенная в (0, 1).
Теперь, давайте центрируем круг в (1, 1) и переместим точку в ту же относительную позицию:
Новый центр нашего круга - (1, 1), и точка теперь находится в (1, 2).Все, что вам нужно сделать, чтобы получить это преобразование:
1 + 0 = 1 # new_center_x + point_x
1 + 1 = 2 # new_center_y + point_y
Это действительно так просто!
Теперь numpy
имеет встроенную функциональность, чтобы сделать это еще проще, потому что вы можете простодобавить массивы NumPy.Поэтому, если у вас есть новый центр и начальная точка, вы можете рассчитать новую точку следующим образом:
new_center = np.array([1, 1])
original_point = np.array([0, 1])
new_center + original_point
# array([1, 2])
Это легко переводит в трехмерные поверхности:
Здесь мы имеем сферу с центром в (0, 0, 0) и точку в (0, 0, 10).Мы можем использовать ту же логику, чтобы переместить этот круг в центр (5, 5, 5), при этом точка все еще будет в той же относительной позиции:
new_center = np.array([5, 5, 5])
original_point = np.array([0, 0, 10])
new_center + original_point
# array([ 5, 5, 15])