python输入平面的两个点的坐标_Python:获取两个3D点之间的所有坐标或绘制3D Lin...

这篇博客探讨了如何在Python中处理三维点坐标,特别是如何将两个3D点连接起来形成一个线条。作者提供了两个函数`connect`和`connect2`,用于根据点之间的距离生成连线的坐标数组。此外,还提到了理想情况下直接在数组中绘制圆柱体的可能性。
摘要由CSDN通过智能技术生成

我有以下问题。我有三维点坐标,我想把它们合并成一个数组或“画一条线”,就像你可以用skimage(http://scikit-image.org/docs/0.13.x/api/skimage.draw.html#skimage.draw.line)在2D中那样。最佳情况是,如果我可以直接在数组中绘制一个半径为的圆柱体,并给出不同半径的值,比如围绕直线的圆环(这里可能会出现褶皱)。有很多方法可以做到这一点,但我认为这不是正确的做法:import numpy as np

from timeit import timeit

def connect(ends):

d0, d1 = np.abs(np.diff(ends, axis=0))[0]

if d0 > d1:

return np.c_[np.linspace(ends[0, 0], ends[1, 0], d0+1, dtype=np.int32),

np.linspace(ends[0, 1]+0.5, ends[1, 1]+0.5, d0+1, dtype=np.int32)]

else:

return np.c_[np.linspace(ends[0, 0]+0.5, ends[1, 0]+0.5, d1+1, dtype=np.int32),

np.linspace(ends[0, 1], ends[1, 1], d1+1, dtype=np.int32)]

def connect2(ends):

d0, d1 = np.diff(ends, axis=0)[0]

if np.abs(d0) > np.abs(d1):

return np.c_[np.arange(ends[0, 0], ends[1,0] + np.sign(d0), np.sign(d0), dtype=np.int32),

np.arange(ends[0, 1] * np.abs(d0) + np.abs(d0)//2,

ends[0, 1] * np.abs(d0) + np.abs(d0)//2 + (np.abs(d0)+1) * d1, d1, dtype=np.int32) // np.abs(d0)]

else:

return np.c_[np.arange(ends[0, 0] * np.abs(d1) + np.abs(d1)//2,

ends[0, 0] * np.abs(d1) + np.abs(d1)//2 + (np.abs(d1)+1) * d0, d0, dtype=np.int32) // np.abs(d1),

np.arange(ends[0, 1], ends[1,1] + np.sign(d1), np.sign(d1), dtype=np.int32)]

ends = np.array([[ 1520, -1140],

[ 1412, -973]])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值