from JyModule import *
from math import *

def draw():
    beginpage()

    center()
    scale(50)
    setlinewidth(2)
    
    gsave()
    newpath()

    gsave()
    translate(p0.x, p0.y)
    dx = p1.x - p0.x
    dy = p1.y - p0.y
    setrad()
    rotate(atan2(dy, dx))
    dist = sqrt(dx * dx + dy * dy)
    scale(dist)

    gsave()
    newpath()
    moveto(0, 0)
    lineto(1, 0)
    lineto(0.5, sqrt(3)/2)
    closepath()
    stroke()
    grestore()

    gsave()
    newpath()
    circle(0, 0, 1)
    stroke(0.6)
    newpath()
    circle(1, 0, 1)
    stroke(0.5)
    grestore()

    newpath()
    pcircle(0.5, sqrt(3)/2, 4)
    fill(0, 0, 1)
    stroke()
    grestore()

    newpath()
    placemoveable(p0)
    newpath()
    placemoveable(p1)
    
    endpage()

def move(point, x, y):
    point.setpoint(x, y)
    
p0 = Moveablepoint(-1, 1, move)
#p0.setsize(3)
p1 = Moveablepoint(0.5, -1, move)
#p1.setsize(3)

addmoveable(p0)
addmoveable(p1)

openframe(400, 400, draw)
