%% syntaxe : B A r rotatepoint --> C image de B par la rotation de centre A,
%% d'angle r (en degre)
%% En prenant les affixes des pts associes, il vient
%% (zC - zA) = (zB-zA) e^(ir)
%% soit
%% zC = (zB-zA) e^(ir) + zA
/rotatepoint { %% B, A, r
5 copy %% B, A, r, B, A, r
cos 5 1 roll %% B, A, r, cos r, B, A
4 1 roll %% B, A, r, cos r, yA, B, xA
4 1 roll %% B, A, r, cos r, A, B
vecteur %% B, A, r, cos r, xB-xA, yB-yA
4 -1 roll sin %% B, A, cos r, xB-xA, yB-yA, sin r
4 copy mul %% B, A, cos r, xB-xA, yB-yA, sin r, cos r, xB-xA, (yB-yA) sin r
7 1 roll mul %% B, A, (yB-yA) sin r, cos r, xB-xA, yB-yA, sin r, cos r (xB-xA)
5 1 roll %% B, A, (yB-yA) sin r, cos r (xB-xA), cos r, xB-xA, yB-yA, sin r
exch %% B, A, (yB-yA) sin r, cos r (xB-xA), cos r, xB-xA, sin r, yB-yA
4 -1 roll mul %% B, A, (yB-yA) sin r, cos r (xB-xA), xB-xA, sin r, (yB-yA)cos r
3 1 roll mul %% B, A, (yB-yA) sin r, cos r (xB-xA), (yB-yA) cos r, (xB-xA) sin r
add %% B, A, (yB-yA) sin r, cos r (xB-xA), (yB-yA) cos r +(xB-xA) sin r
3 1 roll %% B, A, (yB-yA) cos r + (xB-xA) sin r, (yB-yA) sin r, cos r (xB-xA),
exch sub %% B, A, (yB-yA) cos r + (xB-xA) sin r, cos r (xB-xA)-(yB-yA) sin r
exch %% B, zA, (zB-zA) e^(ir)
addv
3 -1 roll pop
3 -1 roll pop
} def
|