Сталкивалась с подобным вопросом =))
Отложить точку, если правильно поняла суть, можно так: сначала узнаем k и b уравнения прямой оси симметрии (т.к. y=kx+b), затем находим k и b прямой, проходящей через заданную точку и перпендикулярной оси симметрии, координате х искомой точке присваиваем значение длины перпендикуляра, умноженного на два. Вторую координату из уравнения прямой.
Получить всё это можно преобразованием трех формул:
1) Уравнение прямой из данной точки с данным k: y=k(x-x3)+y3; (x3,y3)-координаты точки. 2) через две точки: (y-y2)/(y2-y1)=(x-x2)/(x2-x1). 3) зависимость угловых коэффициентов перпендикулярных п-х: k1*k2=-1.
Код
uses crt, Graph;
var i, gd, gm : integer; 
    x , y: array[1..4] of integer; {координаты 1,2-прямой, 3-данной точки, 4-искомой точки}
    ptd : string; 
    k1,b1,k2,b2 : real; {k и b 1-данной прямой, 2-прямой,ей перпендикулярной}
begin
    clrscr;
    for i:= 1 to 3 do
    begin
       write('x',i,'= '); read(x[i]);                     
       write('y',i,'= '); read(y[i]);
    end;
    gm:= 2; gd:= detect; ptd:='';
    InitGraph(gd,gm,ptd);
    Line(x[1], y[1], x[2], y[2]);
    k1:= (y[2]-y[1])/(x[2]-x[1]);
    b1:= -1*((x[1]*y[2])/(x[2]-x[1])-(x[2]*y[1])/(x[2]-x[1]));
    k2:= -1/((y[2]-y[1])/(x[2]-x[1]));
    b2:= -k2*x[3]+y[3];
    y[3]:= trunc(k2*x[3] + b2);
    x[4]:= trunc((b2-b1)/(k1-k2));
    x[4]:= x[4]+(x[4]-x[3]);
    y[4]:= trunc(k2*x[4] + b2);
    PutPixel(x[3],y[3],10);
    PutPixel(x[4],y[4],10);
    readkey;
end.
Хотя, мне кажется, это какой-то нерациональный алгоритм