pkler 2023-06-17 10:44 采纳率: 0%
浏览 25

一个横坐标对应多个纵坐标如何进行插值

想要对四个点进行样条插值,A(0, 0), B(5, 0),C(5, 5), D(0,5)这四个点如何进行插值得到一个类似弓形的曲线呢?

  • 写回答

2条回答 默认 最新

  • 全栈若城 新星创作者: 编程技术技术领域 2023-06-17 10:58
    关注

    我的实现效果

    img


    代码:如有帮祝给个采纳谢谢

    
    import numpy as np
    from scipy.interpolate import CubicSpline
    import matplotlib.pyplot as plt
    
    # 四个点的坐标
    x = np.array([0, 5, 5, 0])
    y = np.array([0, 0, 5, 0])  # 修改最后一个点的纵坐标为0
    
    # 参数t用于造出平滑曲线 ,长度和x,y相等
    t = np.arange(x.shape[0], dtype=float)
    t /= t[-1]
    
    # 样条插值
    cs = CubicSpline(t, np.vstack([x, y]).T, bc_type='periodic')
    xx, yy = cs(np.linspace(0, 1, 100)).T
    
    # 绘制图像
    plt.plot(xx, yy)
    plt.axis('equal')
    plt.show()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 6月17日