Вот как средствами MFC я рисовал стрелку (т.е. линиюс треугольником на конце).
Линия от (x1,y1) до (x2,y2).
Острие стрелки - (x3,y3).
LenNodVLine - высота, из (x3,y3).
AngNodVLine - половина(?) угла при вершине (x3,y3).
alpha=atan(double(y2-y1)/double(x2-x1));
if(x2-x1>=0)alpha+=PI;
x4=x3+LenNodVLine*cos(alpha-AngNodVLine);
x5=x3+LenNodVLine*cos(alpha+AngNodVLine);
y4=y3+LenNodVLine*sin(alpha-AngNodVLine);
y5=y3+LenNodVLine*sin(alpha+AngNodVLine);
LINK[0].x=x3;
LINK[0].y=y3;
LINK[1].x=x4;
LINK[1].y=y4;
LINK[2].x=x5;
LINK[2].y=y5;
dc.MoveTo(x1,y1);
dc.LineTo(x2,y2);
dc.Polygon(LINK,3);
Если не найдёшь готовый алгоритм - не трудно из моего вывести.
Или MidletPascal не умеет рисовать многоуольники?
Вопрос алгоритмический или на математику?