i wrote this
Code:
#include <acknex.h>
#include <default.c>

BMAP* bmp_r;
BMAP* bmp_m;
void bmap_drawline(VECTOR* p0, VECTOR* p1, var s){
	
	PANEL* pnl_m1 = pan_create("flags = SHOW", 99);
	pnl_m1.bmap = bmp_m;
	pnl_m1.pos_x = p0.x;
	pnl_m1.pos_y = p0.y;
	
	PANEL* pnl_m2 = pan_create("flags = SHOW", 99);
	pnl_m2.bmap = bmp_m;
	pnl_m2.pos_x = p1.x;
	pnl_m2.pos_y = p1.y;
	
	PANEL* pnl = pan_create("flags = SHOW", 100);
	pnl.pos_x = p0.x;
	pnl.pos_y = p0.y;
	pnl.bmap = bmp_r;
	pnl.center_x = 16;//bmap_
	
	pnl.angle = atan2v((p0.y-p1.y),(p1.x-p0.x));
	var dist = vec_dist(p0, p1);
	while(pnl.size_x < dist + 24){
		pnl.size_x += time_step * s;
		wait(1);
	}
}

void do_triangle(){
	bmap_drawline(vector(200, 100, 0), vector(100, 100, 0), 10);
	wait_for(bmap_drawline);
	bmap_drawline(vector(100, 100, 0), vector(100, 300, 0), 10);
	wait_for(bmap_drawline);
	bmap_drawline(vector(100, 300, 0), vector(200, 100, 0), 10);
	wait_for(bmap_drawline);
}

void main(){
	
	wait(1);
	
	bmp_m = bmap_createblack(32, 32, 24);
	bmap_fill(bmp_m, COLOR_GREEN, 100);
	
	bmp_r = bmap_createblack(16, 16, 24);
	bmap_fill(bmp_r, COLOR_RED, 100);
	
	
	do_triangle();
	return;
}

a while ago, hopefully you'll find some use for it