Source PostScript (interquadrilatereddroite.pps)

Retour Texte non formaté
%% syntaxe : A B C D E F interquadrilatereddroite --> M, le point %% d'intersection du quadrilatere ABCD avec la demi droite [EF). Le %% point A est suppose a l'interieur du quadrilatere. /interquadrilatereddroite { 9 dict begin /F defpoint /O defpoint /D defpoint /C defpoint /B defpoint /A defpoint %% les cas marginaux A B distance 0 eq A D distance 0 eq or { A C milieu } { /d {O F} def /fini false def A B d paralleles? not { A B d interdroite /M defpoint O M vecteur d vecteur scalprod 0 gt { M A B pointsurAB? { /fini true store } if } if } if A D d paralleles? not fini not and { A D d interdroite /M defpoint O M vecteur d vecteur scalprod 0 gt { M A D pointsurAB? { /fini true store } if } if } if C B d paralleles? not fini not and { C B d interdroite /M defpoint O M vecteur d vecteur scalprod 0 gt { M C B pointsurAB? { /fini true store } if } if } if C D d paralleles? not fini not and { C D d interdroite /M defpoint } if M } ifelse end } def