在python中使简单的绘图平滑

在python中使简单的绘图平滑,python,python-3.x,Python,Python 3.x,我制作了一个简单的程序,生成一个路径避免对象(这里的对象显示为绿色和黄色)。路径显示为红色 这是用来导航一辆小车,但它不能直转弯45°,我需要一种方法使路径更平滑 黄色区域只是一个安全区域,因此如果它稍微切入,就没有问题 正在使用以下代码进行打印(随着对象的移动而更新) 路径和对象的图像: 你好,雅各布 编辑:我的问题和中回答的问题之间的区别(从我所知道的)是,我不知道我的曲线将具有什么阶数,它将被持续使用,因此我无法绘制它并自己决定阶数。(我不是一个有经验的程序员,所以我很可能是错的)在绘制

我制作了一个简单的程序,生成一个路径避免对象(这里的对象显示为绿色和黄色)。路径显示为红色

这是用来导航一辆小车,但它不能直转弯45°,我需要一种方法使路径更平滑

黄色区域只是一个安全区域,因此如果它稍微切入,就没有问题

正在使用以下代码进行打印(随着对象的移动而更新)

路径和对象的图像:

你好,雅各布


编辑:我的问题和中回答的问题之间的区别(从我所知道的)是,我不知道我的曲线将具有什么阶数,它将被持续使用,因此我无法绘制它并自己决定阶数。(我不是一个有经验的程序员,所以我很可能是错的)

在绘制数据之前,您可以尝试生成更平滑的数据。通常是通过对数据拟合平滑函数来实现这一点。在这里,您应该反转x轴和y轴以获得实函数(仅适用于插值过程)。 您可以使用的一个功能:

from scipy.interpolate import interp1d

文档:

您可以在打印之前尝试生成更平滑的数据。通常是通过对数据拟合平滑函数来实现这一点。在这里,您应该反转x轴和y轴以获得实函数(仅适用于插值过程)。 您可以使用的一个功能:

from scipy.interpolate import interp1d

文档:

理论上,圆是一个具有无限边的多边形,因此可以绘制具有无限切线的曲线。如果你扩大你要绘制的点的列表,你可以使线变得平滑;或者可以绘制二次函数而不是对角线。听起来更像是一个几何问题,而不是Python问题。@Javier我目前的计划是让汽车的目标距离它更远一品脱,这样,汽车就在路径转弯之前开始转弯,然后随着汽车的行驶再次缓慢接近路线。这与您的建议类似还是我错了?如果您决定像
plt那样绘图。绘图(path_x,path_y,'r-')
是因为您定义了点,如(
path_x[0]
path_y[0]
)。。。因此,汽车的瞄准位置取决于你,我建议你先瞄准(12,0)到(16,4),然后再到(20,8),以减小每个顶点的转弯角度。这样做几次,直到你认为线是可接受的“弯曲”。理论上,一个圆是一个无限边的多边形,所以你可以画一条具有无限切线的曲线。如果你扩大你要绘制的点的列表,你可以使线变得平滑;或者可以绘制二次函数而不是对角线。听起来更像是一个几何问题,而不是Python问题。@Javier我目前的计划是让汽车的目标距离它更远一品脱,这样,汽车就在路径转弯之前开始转弯,然后随着汽车的行驶再次缓慢接近路线。这与您的建议类似还是我错了?如果您决定像
plt那样绘图。绘图(path_x,path_y,'r-')
是因为您定义了点,如(
path_x[0]
path_y[0]
)。。。因此,汽车的瞄准位置取决于你,我建议你先瞄准(12,0)到(16,4),然后再到(20,8),以减小每个顶点的转弯角度。这样做几次,直到你认为这条线是可接受的“弯曲”。我会研究这一点,坦克。