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