You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python绘制双质量-弹簧系统的可视化图形?

用Python绘制双质量-弹簧系统可视化图形

可以用matplotlib库实现这个需求,以下是完整可运行的代码,能生成美观的矢量图形:

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle

# 设置图形参数
fig, ax = plt.subplots(figsize=(8, 2), dpi=100)
ax.set_xlim(-1, 11)
ax.set_ylim(-1, 3)

# 隐藏多余元素
ax.set_xticks([])
ax.set_yticks([])
for spine in ax.spines.values():
    spine.set_visible(False)

# 绘制左右墙体
wall_width = 0.3
wall_height = 3
ax.add_patch(Rectangle((-wall_width, 0), wall_width, wall_height, color='#333333'))
ax.add_patch(Rectangle((10, 0), wall_width, wall_height, color='#333333'))

# 质量块参数
mass_width = 1
mass_height = 2
m1_x = 2
m2_x = 7

# 绘制质量块
ax.add_patch(Rectangle((m1_x - mass_width/2, 0.5), mass_width, mass_height, color='#4CAF50'))
ax.add_patch(Rectangle((m2_x - mass_width/2, 0.5), mass_width, mass_height, color='#2196F3'))

# 添加质量块标注
ax.text(m1_x, 1.5, 'M1', fontsize=14, ha='center', va='center', color='white')
ax.text(m2_x, 1.5, 'M2', fontsize=14, ha='center', va='center', color='white')

# 绘制弹簧(用折线模拟波浪)
def draw_spring(start_x, end_x, y=1.5, num_waves=10, wave_amplitude=0.3):
    x = []
    y_points = []
    segment_length = (end_x - start_x) / (num_waves * 2)
    current_x = start_x
    for i in range(num_waves * 2 + 1):
        x.append(current_x)
        if i % 2 == 0:
            y_points.append(y + wave_amplitude)
        else:
            y_points.append(y - wave_amplitude)
        current_x += segment_length
    # 修正最后一个点的y值为中间值,避免弹簧两端翘起
    y_points[-1] = y
    y_points[0] = y
    ax.plot(x, y_points, color='#FF9800', linewidth=2)

# 绘制三个弹簧
draw_spring(wall_width, m1_x - mass_width/2)
draw_spring(m1_x + mass_width/2, m2_x - mass_width/2)
draw_spring(m2_x + mass_width/2, 10)

plt.tight_layout()
plt.show()

关键部分说明

  • 墙体与质量块:用Rectangle绘制矩形元素,通过调整坐标和尺寸控制位置大小,颜色区分不同组件
  • 弹簧模拟:自定义draw_spring函数生成波浪形折线,通过num_waves和wave_amplitude控制弹簧的疏密和幅度
  • 美化处理:隐藏坐标轴刻度和边框,调整布局让图形更简洁,标注文字居中显示

如果需要调整样式,比如修改颜色、质量块大小、弹簧长度,直接修改代码中对应的参数即可。

内容的提问来源于stack exchange,提问作者stancallewier

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 10:25:38