Wondering why this forum is so empty, I thought I'd post something interesting. While I was slightly bored yesterday, I decided to write a script that would draw lines of different thicknesses. Here it is:
//draw_line_ext(x1,y1,x2,y2,thickness)
var iiiii;
for (iiiii=-(argument4/2);iiiii<=(argument4/2);iiiii+=0.5)
draw_line(argument0+lengthdir_x(iiiii,point_direction(argument0,argument1,argument2,argument3)+90),argument1+lengthdir_y(iiiii,point_direction(argument0,argument1,argument2,argument3)+90),argument2+lengthdir_x(iiiii,point_direction(argument0,argument1,argument2,argument3)+90),argument3+lengthdir_y(iiiii,point_direction(argument0,argument1,argument2,argument3)+90))
draw_circle(argument0,argument1,argument4/2,0)
draw_circle(argument2,argument3,argument4/2,0)
So that works nice and dandy.
However, while I tested that, I noticed that the circles on each end were... not circles. It appears Game Maker isn't drawing circles, but drawing a polygon of 26 sides. For normal purposes this seems fine, yet, when you want it bigger than the screen, which is not often, it looks quite uncircular.
Therefore, I cam up with a "real circle" script, which was terribly fond of drawing flowers. So I ditched it and asked Atrius to make one, here it is:
var dx,dy,w;
for(dy=round(argument1-argument2);dy<=round(argument1+argument2);dy+=1;) {
w=cos(arcsin((dy-argument1)/argument2))*argument2
dx=argument0-w
draw_line(round(dx),dy,round(dx+w*2),dy) }