# -*- coding: utf-8 -*-
"""
created September 7th
"""
import numpy as np
import matplotlib.pyplot as plt
import time
i=0
mult_list=[]
mod_list=[]
multiplier = int (input('Enter Multiplier : '))
no_points = int (input('Enter Number of points :'))
theta=360/no_points
points=[]
p1=[0,1]
circle = plt.Circle((0,0),1,color = 'r',fill=False,linewidth= 4)
fig, ax=plt.subplots()
ax.add_artist(circle)
for j in range (0, multiplier):
j+= 1
def transformation(point, angle, list1):
a=[np.cos(np.radians(angle)), np.sin(np.radians(angle))]
b=[-np.sin(np.radians(angle)), np.cos(np.radians(angle))]
matrix=[a,b]
point2=list(np.dot(matrix,point))
list1.append(point2)
while i<no_points:
transformation(p1,theta*i,points)
i+=1
num_list=[i for i in range(0,no_points)]#position of points on circle for i in num_list:
for i in num_list:
s=multiplier*i
mult_list.append(s)#multipling position of points by the multiplier mod_sums=[s%no_points for s in mult_list]
mod_sums=[s%no_points for s in mult_list]
points2=[]
for i in mod_sums:
s=points[i]
points2.append(s)
x,y=zip(*points)
plt.axis("equal")
plt.axis('off')
x=[]
y=[]
c=[]
z=[]
for i in points:
x.append(i[0])
y.append(i[1])
for i in points2:
c.append(i[0])
z.append(i[1])
i=0
while i<len(x):
plt.plot([x[i],c[i]],[y[i],z[i]],'k', linewidth=0.5)
plt.title ('Multiplier = %i' %multiplier, loc='center')
i+=1
#plt.title ('\nNumber Of Points: %i' %no_points, loc='center')
plt.show()
Enter Multiplier : 3
Enter Number of points : 39
png