m0_54212618 2023-04-24 23:21 采纳率: 66.7%
浏览 57
已结题

Python 读取到dxf 的spline 后,怎么用scipy 画画出来呢?

Python 用dxfgrabber 读取到spline ,现在需要把这个样条曲线画出来。
不才,看到spline 里面又是knots weights fit control 这些,用scipy 画不来,请问应该用那个函数来画cad 的spline ?

  • 写回答

1条回答 默认 最新

  • 「已注销」 2023-04-24 23:43
    关注

    仅作参考:
    要用 Python 中的 SciPy 库绘制 DXF 文件中的样条曲线,您需要先将 DXF 文件中的样条曲线读取到 Python 中,然后使用 SciPy 库中的 interpolate.splprep 和 interpolate.splev 函数进行插值和绘制。
    假设您已经使用 ezdxf 库读取了 DXF 文件中的所有样条曲线,并将它们存储在 splines 列表中

    import numpy as np
    from scipy import interpolate
    import matplotlib.pyplot as plt
    
    # 遍历所有样条曲线
    for spline in splines:
        # 读取样条曲线的控制点
        control_points = np.array(spline.control_points)
    
        # 对控制点进行插值
        tck, u = interpolate.splprep(control_points.T, s=0)
    
        # 生成新的样条曲线上的点
        u_new = np.linspace(u.min(), u.max(), 1000)
        x_new, y_new, _ = interpolate.splev(u_new, tck)
    
        # 绘制样条曲线
        plt.plot(x_new, y_new)
    
    # 显示图像
    plt.show()
    
    

    将样条曲线的控制点作为输入进行插值,然后使用 linspace 函数生成新的样条曲线上的点,并使用 splev 函数计算新的样条曲线上的坐标。最后,我们使用 plot 函数绘制样条曲线,并使用 show 函数显示图像。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 4月26日
  • 已采纳回答 4月26日
  • 创建了问题 4月24日