#!/usr/bin/python3
# ==================================================================
# Draw an logarithmic spiral
# I am not sure I have the right formula for a logarithmic spiral.
# I put this formula together from information I found on the web.
# I think it is close to a correct formula.
# ==================================================================
from math import pi, radians, cos, sin, exp
import graphics as gr
import user_interface as ui
import coordinate_conversion as cc
import draw_axes as ax
window_width = 801
window_height = 801
# -------------------------------------------------------------------
# ---- draw a circle
# -------------------------------------------------------------------
def draw_circle(win,x,y,color):
wx,wy = cc.center_to_win_coords(x,y,window_width,window_height)
c = gr.Circle(gr.Point(wx,wy),2)
c.setWidth(1)
c.setFill(color)
c.draw(win)
# -------------------------------------------------------------------
# ---- main
# -------------------------------------------------------------------
win = gr.GraphWin("Archimedes Spiral",window_width,window_height)
win.setBackground("white")
ax.draw_xy_axes(win,True)
a = 2
b = 0.5
for deg in range(0,811,10):
rad = radians(deg)
r = a * exp(b*rad)
x = r * sin(rad)
y = r * cos(rad)
draw_circle(win,x,y,'red')
ui.pause()
win.close()