Да, конечно, sorry... Поправил там.
На решени не отразилось: явное нарушение размерностей
сказалось бы и в решении. Решение совпадает с другими предложенными.
Всё получилось?
Добавлено спустя 51 минуту 52 секунды:
Совесть заговорила...
Столько наошибался, что пришлось запрограмировать для проверки... Если нижеследующие строки, начиная с %PS, скопировать в файл (test.ps), то любой PostScript viewer (GSview)
Вам покажет картинку . Защита от плохих данных не предусмотрена --- всё на скорую руку... Данные (x1,y1,x2,y2,gamma) можно менять редактором...
%!PS
/x1 100 def /y1 77 def
/x2 -30 def /y2 48 def
/gamma 90 def
/ctg gamma 2 div dup cos exch sin div def
/r x1 x2 sub dup mul y1 y2 sub dup mul add sqrt 2 div gamma 2 div sin abs div def
/Ishow {% (r1) Ishow : Prints second character as index
dup gsave currentpoint translate newpath 0 0 moveto
dup stringwidth add exch
{pop pop 0.6 0.6 scale 0 exch -0.2 mul rmoveto} exch kshow
grestore stringwidth rmoveto
} bind def
/Point {%
gsave newpath 1 0 0 setrgbcolor moveto 1 setlinecap 4 setlinewidth 0 0 rlineto stroke grestore
} def
/sign 1 def
250 300 translate /Times-Roman findfont 16 scalefont setfont
-120 0 moveto 120 0 lineto 0 -100 moveto 0 100 lineto stroke
-100 0 Point -110 -20 moveto (-100) show
100 0 Point 90 -20 moveto (100) show
x1 y1 2 copy Point moveto -16 -16 rmoveto (x1) Ishow (,) show (y1) Ishow
x2 y2 2 copy Point moveto -16 -16 rmoveto (x2) Ishow (,) show (y2) Ishow
2 {%
/a x1 x2 add y1 y2 sub ctg mul sign mul add 2 div def
/b y1 y2 add x2 x1 sub ctg mul sign mul add 2 div def
gsave .4 setlinewidth 0 0 1 setrgbcolor x1 y1 moveto a b lineto x2 y2 lineto stroke grestore
a b Point a b 20 sub moveto (a,b) show
newpath a b r 0 360 arc stroke
/sign -1 def
} repeat
showpage
%----------------------------------------------------------------------------------------