要想及时的了解数学信息,请中学师生关注公众号“中学究尽数学”;大学生关注公众号“究尽数学”

基于Python的作图小实验

Python huijiaorz 57℃ 0评论

接下来就是实验的几个步骤

  • 将一个圆n等分后,圆上得到n个等分点
  • 任选其中一点,标记其序号为0;按照顺(逆)时针依次标记下去,在转完一圈的情况下,依然往下标记,如下图n=10的情形

  • 仍然是从序号0开始,0连接x序号0×m,1连接序号1×m,……,以此类推,知道n-1连接(n-1)×m。其中m≥2的整数

python代码

import numpy as np
import matplotlib.pyplot as plt
class TimesTable:
    def __init__(self, PointNum=500):
        self.r=3
        self.PointNum = PointNum
        self.start = [i for i in range(self.PointNum)]
        self.PointList = [(self.r*np.cos(2*i*np.pi/self.PointNum),
                          self.r*np.sin(2*i*np.pi/self.PointNum)) for i in self.start]
        yuan = plt.Circle((0,0),self.r,color = 'r',fill = False)
        plt.gca().add_artist(yuan)
        plt.axis('equal')
        plt.axis('off')

    def drawTable(self,Step=2):
        try:
            end = [np.mod(Step*i, self.PointNum) for i in self.start]

            for s in self.start:
                e = end[s]
                plt.plot([self.PointList[s][0], self.PointList[e][0]], 
                         [self.PointList[s][1], self.PointList[e][1]])
                
            plt.show()
        except Exception as e:
            print(e)
if __name__ == "__main__":
    print('测试开始')
    TimesTable(200).drawTable(2)

接下来是几个图,图中均取n=200,那么m=2,3,4分别为下图

转载请注明:究尽数学 » 基于Python的作图小实验

喜欢 (1)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址