Source PostScript (rotatepoint.pps)

Retour Texte non formaté
%% 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