Отрезок вращается вокруг точки, которая движется по нему
Мне кажется, это проще всего решить в полярных координатах.
Точка, если я правильно понял условие, вообще зафиксирована на экране - например в центре - а вокруг нее вращается отрезок.
При этом угол RO полярных координат изменяется линейно во времени,
длины "хвостов" отрезка с разных сторон точки тоже меняются линейно во времени.
В итоге имеем что-то наподобие :iCnt:=300; fLen:=200;
for iTime:=0 to iCnt-1 do
    begin
    fRo:=iTime/iCnt*2*PI;
    fLen1:=fLen*(iTime/iCnt);
    iX1:=iXCenter+round(fLen1*cos(fRo));
    iY1:=iYCenter+round(fLen1*sin(fRo));
    fLen2:=fLen-fLen1;
    iX2:=iXCenter-round(fLen2*cos(fRo));
    iY2:=iYCenter-round(fLen2*sin(fRo));
    // отрисовка
    end;
Не хватает данных. Вращение равномерное?
И сколько оборотов совершит отрезок за время прохождения центра от начала отрезка до конца.
А так задача не кажется сложной. Вам надо найти координаты концов отрезка в любой момент времени и построить отрезок. 
Пусть отрезок начинает движение, находясь в вертикальном положении, с началом отрезка в точке 0,0. Пусть скорость вращения w (рад/с), скорость движения точки по отрезку v ([Длина А, далее просто А]/с),
через отрезок времени t мы имеем для начала отрезка:
Угол ф=w*t
Пройденный путь по отрезку с=v*t
Начальная точка:
x1 = -c*sin(ф)
y1 = -c*cos(ф)
Конечная точка:
x2 = (A-c)*sin(ф)
y2 = (A-c)*cos(ф)
 Соответственно, задаете малый промежуток времени и выполняете пока значение с не будет равно А.
Вроде так..
upd: вот, накидал пример на том, что знаю
jsfiddle.net/iiil/ZFugz/11
Формулы несколько отличаются, но это из-за особенностей реализации. тот алгоритм, что я привел выше верный. В примере скорость выражена через величину А коэффициентом cv. Скорость w  задано абсолютно, но ее можно тоже выразить через А и количество оборотом, там уж думаю с формулами сами разрулите.