It is not a full answer, but you should check ctxpromise() for the size. I 
think the distribution is because the canvas is not square and you use relative 
positions to specify circle centers. You can set the size parameters in the 
context call. Sorry I realise this is really useless in terms of help but may 
point you in the right direction. 

Reply via email to