File: pygadgets-products/unzipped/_PyClock/Clock/_PriorCodePP4E/plotterText-alt.py

###############################################################################
# per a mathematician - just an algebraic simplification:  3 ops vs 4
# [i * (360.0 / range)] * (pi / 180)
# [i * (360.0 / range) * pi] / 180
# [i * (2 / range) * pi]
# [(i / range) * 2 * pi]
# also: swapped cos and sin
# 
# >I didn't check direction.  In fact if you care about the order and the
# >origin, mine is probably wrong.
# >x=cos, y=sin starts at the rightmost point and moves counterclockwise.  If
# >you want it to be clockwise from the top, you need
# >x=cos(pi/2-angle), y=sin(pi/2-angle)
#############################################################################


from math import cos, sin, pi

def circle(numpoints, radius, centerX, centerY):
  print( '-' * 10)
  for i in range(numpoints):
     angle = i / float(numpoints) * 2 * pi    # in radians
     x = int(round(radius * cos(angle)))
     y = int(round(radius * sin(angle)))
     print(i+1, ':', angle, '=', (x,y))
     # draw from centerX, centerY to centerX+x, centerY-y

Width = Height = 400
originX = Width // 2
originY = Height // 2

circle(4,   200, originX, originY)
circle(12,  200, originX, originY)
circle(60,  200, originX, originY)
circle(360, 200, originX, originY)



[Home page] Books Code Blog Python Author Train Find ©M.Lutz