m0_72636402 2022-07-09 15:56 采纳率: 100%
浏览 175
已结题

利用Python做一个五角星在平面上滚动

“利用Python做一个五角星在平面上滚动,把其中一定点的轨迹用matplotlib画出来

现只有五角星代码

  • 写回答

4条回答 默认 最新

  • 天元浪子 Python领域优质创作者 2022-07-11 11:03
    关注
    import numpy as np
    import matplotlib.pyplot as plt
    
    r = 1 # 旋转半径
    five_corners = np.linspace(18, 378, 5, endpoint=False) # 五角星初始位置
    rotations = np.linspace(0, 360, 361) # 旋转序列:旋转一周,间隔1°
    x_shift = np.linspace(0, 2*r*np.pi, 361) # 旋转过程中五角星水平位移序列
    theta = np.radians(five_corners.reshape(-1,1) - rotations) # 计算五角星每个角的旋转弧度序列
    x, y = r*np.cos(theta) + x_shift,  r*np.sin(theta) # 计算旋转轨迹上每个角的坐标
    
    plt.plot([x[0][0], x[2][0]], [y[0][0], y[2][0]], color='m', ls='dashed')
    plt.plot([x[0][0], x[3][0]], [y[0][0], y[3][0]], color='m', ls='dashed')
    plt.plot([x[1][0], x[3][0]], [y[1][0], y[3][0]], color='m', ls='dashed')
    plt.plot([x[1][0], x[4][0]], [y[1][0], y[4][0]], color='m', ls='dashed')
    plt.plot([x[2][0], x[4][0]], [y[2][0], y[4][0]], color='m', ls='dashed')
    
    for i in range(5):
        plt.plot(x[i], y[i]) # 绘制5个角的旋转轨迹
    
    plt.axis('equal') # xy轴等比例保持
    plt.show()
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月9日

悬赏问题

  • ¥100 set_link_state
  • ¥15 虚幻5 UE美术毛发渲染
  • ¥15 CVRP 图论 物流运输优化
  • ¥15 Tableau online 嵌入ppt失败
  • ¥100 支付宝网页转账系统不识别账号
  • ¥15 基于单片机的靶位控制系统
  • ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度