python绘制月亮_用Python画一个超级月亮

信息安全公益宣传,信息安全知识启蒙。

教程列表见微信公众号底部菜单

1cff527424034989a676fb3e039183b997599645.jpg

农历腊月十五

凌晨三点的街上

程序员给巡警解释

“同志,您误会了,我不是小偷,我是程序员。”

于此同时

程序员错过了

月全食血月+超级月亮+蓝月

三景合一的天文奇观

想想她们上一次组团亮相

是152年前

程序员心里就痛

4cb9e5e48c064691b24ca4e578b3c4bd69791227.jpg

程序员的苦只有他们寄几知道

bug,bug,bug,bug,bug,bug……

吃饭时在改bug

走路时在改bug

约会时在改bug

结婚时在改bug

就连上演超级蓝血月时还!在!改!bug!

79247baa8546458396fee8b8af59b3ee69986529.jpg

不过做为一枚上知《边城》下知编程的程序员

没有什么可以难倒他

“不就是圆形红月亮吗?”

三分钟以后…

程序员自己用python画了一个

python版蓝血月!

下面是用Python画图的具体流程

1

工具

装一个Anaconda3.exe

2

画圆公式

3

用matplotlib建立一个画布

4

实现

可以实现这样的效果

a17f2ed2d1cf484dbd51262af71ebc2302599688.jpg

想要niubility的话

改下代码…

7247dc591dcd47dba86bff664577229803693495.jpg

可以画出这种效果

13179e9e30f94b0a8349048ed19e1cc577051791.jpg

甚至在数据量足够的情况下

Python可以通过深度学习算法

绘制“人工智能版蓝血月”

ad00a35bc7c5443caa259e4746552aef06349795.jpg

事实上

就算是画名画

Python也不是一次两次画了

2015年德国科学家用深度学习算法

让人工智能系统学习梵高、莫奈的画风

绘制出了新的“人工智能世界名画”

先让我们来欣赏名画风采

2e1ef4227e8e428e96b8011ed0b1df1a07521627.jpg

梵高《星空》

160872880cbd4447ab92c32cee73f7f770791221.jpg

人工智能世界名画

人工智能让我们惊呆了

Python也让我们惊呆了

Python是研究AI最常用的语言

进入人工智能时代

就从Python 开始吧!

9ec9474dc5234bff989957162f824bf070838104.jpg

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你回答这个问题。 要绘制月亮,可以使用Python的turtle库进行绘制。下面是一个示例代码,可以绘制一个月亮: ```python import turtle # 设置布和笔 canvas = turtle.Screen() canvas.bgcolor("black") pen = turtle.Turtle() pen.color("white") # 绘制月亮 pen.begin_fill() pen.fillcolor("white") pen.circle(50) pen.end_fill() # 绘制月球表面的阴影 pen.penup() pen.goto(25, 0) pen.pendown() pen.begin_fill() pen.fillcolor("black") pen.circle(25) pen.end_fill() # 隐藏笔 pen.hideturtle() # 等待用户关闭窗口 turtle.done() ``` 关于Python模拟太阳-地球-月亮运动模型,可以使用一些数学公式和库来模拟它们的运动。下面是一个示例代码,可以模拟太阳-地球-月亮运动模型: ```python import math import turtle # 设置布和笔 canvas = turtle.Screen() canvas.bgcolor("black") pen = turtle.Turtle() pen.color("white") pen.speed(0) # 定义常数和初始状态 G = 6.67428e-11 M = {"sun": 1.989e30, "earth": 5.9742e24, "moon": 7.342e22} R = {"sun": 0, "earth": 1.49598e11, "moon": 3.84403e8} V = {"sun": 0, "earth": 29390, "moon": 1022} pos = {"sun": (0, 0), "earth": (R["earth"], 0), "moon": (R["earth"] + R["moon"], 0)} vel = {"sun": (0, 0), "earth": (0, V["earth"]), "moon": (0, V["earth"] + V["moon"])} dt = 60 * 60 * 24 # 时间步长 # 模拟运动 for t in range(365 * 20): # 计算太阳对地球和月亮的引力 for p in ["earth", "moon"]: d = math.sqrt((pos["sun"][0] - pos[p][0]) ** 2 + (pos["sun"][1] - pos[p][1]) ** 2) f = G * M["sun"] * M[p] / d ** 2 fx = f * (pos["sun"][0] - pos[p][0]) / d fy = f * (pos["sun"][1] - pos[p][1]) / d vel[p] = (vel[p][0] + fx / M[p] * dt, vel[p][1] + fy / M[p] * dt) # 计算地球对月亮的引力 d = math.sqrt((pos["earth"][0] - pos["moon"][0]) ** 2 + (pos["earth"][1] - pos["moon"][1]) ** 2) f = G * M["earth"] * M["moon"] / d ** 2 fx = f * (pos["earth"][0] - pos["moon"][0]) / d fy = f * (pos["earth"][1] - pos["moon"][1]) / d vel["moon"] = (vel["moon"][0] + fx / M["moon"] * dt, vel["moon"][1] + fy / M["moon"] * dt) # 更新位置 for p in ["earth", "moon"]: pos[p] = (pos[p][0] + vel[p][0] * dt, pos[p][1] + vel[p][1] * dt) # 绘制太阳、地球、月亮 pen.clear() pen.penup() pen.goto(pos["sun"]) pen.dot(20, "yellow") pen.goto(pos["earth"]) pen.dot(10, "blue") pen.goto(pos["moon"]) pen.dot(5, "white") # 隐藏笔 pen.hideturtle() # 等待用户关闭窗口 turtle.done() ``` 这个代码可以模拟太阳、地球和月亮之间的引力和运动,最终在布上绘制它们的轨迹。希望这个回答能够帮到你。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值