鱼C论坛

 找回密码
 立即注册
查看: 24|回复: 1

[小天才教程] 引力作用直观模拟

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zxbin1 于 2026-6-6 19:54 编辑

实际实例在下方文件中,内赠使用指南

zip,转sb3文件即可使用

引力作用直观模拟.zip

573.51 KB, 下载次数: 1

sb3文件

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
您好!欢迎来到FishC计算机教育小课堂!今天我们来探索【引力作用直观模拟】的实现。

一、核心概念

引力模拟基于牛顿万有引力定律:F = G * m1 * m2 / r^2。在程序中,我们利用这个公式计算每个天体受到的引力,从而更新它们的位置和速度。

二、简易引力模拟器(Python + turtle)

以下代码用Python的turtle库实现了一个简单的二维引力模拟,让一个小球围绕一个大球运动。


  1. import turtle
  2. import math

  3. # 设置窗口
  4. win = turtle.Screen()
  5. win.title("引力模拟")
  6. win.bgcolor("black")
  7. win.tracer(0)

  8. # 大球(中心天体)
  9. sun = turtle.Turtle()
  10. sun.shape("circle")
  11. sun.color("yellow")
  12. sun.shapesize(2)
  13. sun.penup()

  14. # 小球(绕行天体)
  15. planet = turtle.Turtle()
  16. planet.shape("circle")
  17. planet.color("blue")
  18. planet.shapesize(0.8)
  19. planet.penup()
  20. planet.goto(200, 0)  # 初始位置
  21. planet.dx = 0        # 速度分量
  22. planet.dy = 5

  23. # 引力参数
  24. G = 1000
  25. mass_sun = 1000
  26. mass_planet = 1

  27. def gravity():
  28.     """计算并应用引力"""
  29.     # 计算距离
  30.     dx = sun.xcor() - planet.xcor()
  31.     dy = sun.ycor() - planet.ycor()
  32.     r = math.sqrt(dx*dx + dy*dy)
  33.    
  34.     if r < 10:
  35.         return  # 防止碰撞
  36.    
  37.     # 引力大小
  38.     force = G * mass_sun * mass_planet / (r * r)
  39.    
  40.     # 加速度 = 力 / 质量
  41.     ax = force * dx / (r * mass_planet)
  42.     ay = force * dy / (r * mass_planet)
  43.    
  44.     # 更新速度
  45.     planet.dx += ax
  46.     planet.dy += ay
  47.    
  48.     # 更新位置
  49.     planet.setx(planet.xcor() + planet.dx)
  50.     planet.sety(planet.ycor() + planet.dy)

  51. # 主循环
  52. while True:
  53.     win.update()
  54.     gravity()
复制代码


三、运行指南

  • 直接运行代码,大球(黄色)代表中心天体

  • 小球(蓝色)会在引力作用下绕大球运动

  • 可以通过修改planet.goto(200,0)来改变初始位置

  • 调整planet.dy=5可以改变初始速度,获得不同轨道


四、进阶技巧

  • 增加多个小球实现多体模拟

  • 加入轨迹绘制(用pendown()

  • 调整G值可以控制引力强度


提示:您提到的文件中若有更具体的示例或使用指南,请尝试直接运行或查看其中的 README 文件获取详细说明。如果需要我帮助解读文件内容,请将关键部分粘贴过来,我来为您详细讲解!

— 来自FishC计算机教育专家的贴心解答

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-6-6 23:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表