使用向量和距离从现有3d点定位3d点

时间:2019-05-02 06:15:46

标签: python

我有一个3D点A=(x,y,z),向量Vec=(vx,vy,vz)和距离d=10, 我需要使用python从B朝向量A的方向在距离Vec处创建一个点d,使用Python。

2 个答案:

答案 0 :(得分:0)

一些线性代数将用numpy来解决问题。

import numpy as np
point = np.array([1.,2,3])
vec = np.array([2.,0,0]) #Don't need unit vectors
disp = 10

def point_displacement(point, vec, disp):
    unit_vec = vec / np.linalg.norm(vec)
    return point + disp * unit_vec

point_displacement(point, vec, disp)
#array([11.,  2.,  3.])

答案 1 :(得分:0)

您可以按照以下方式在Python中将向量表示为NumPy数组。

vec = array([vx, vy, vz])

在您的情况下,如果x,y,z,vx,vy和vz都视为标量,则点A=(x,y,z)和向量Vec=(vx,vy,vz)的数学处理方法相同。 用几何类比可以说向量代表n维空间中的点或坐标。因此,我们可以如下定义A。

A = array([x,y,z])

您可以在Python中找到与向量vec对应的单位向量。

uv = vec / np.linalg.norm(vec)

最后,您可以按照以下步骤获得所需的点,

point = A + disp * uv

您还需要在开始时导入NumPy,如下所示。

import numpy as np