%% syntaxe : A B C D alpha quadrilatereanglepoint --> le point M du
%% quadrilatere ABCD, de centre O, tel que arg (OM) = alpha
/quadrilatereanglepoint {
9 dict begin
/alpha exch def
/D defpoint
/C defpoint
/B defpoint
/A defpoint
A B distance 0 eq
A D distance 0 eq or {
A C milieu
} {
A C B D interdroite /O defpoint
/d {O dupp alpha dir addv} bind 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
% O M vecteur d vecteur scalprod 0 gt {
% } if
} if
M
} ifelse
end
} def
|