
Kc          @   sp   d  d k  Z  d  d k l Z l Z e  i d  Z e  i d  Z e  i d  Z e  i d  Z e  i d  Z	 e  i d  Z
 e  i d	  Z d
   Z g  e e e e d  Z d   Z e d j oe   d d f d d f d d f d d f d d f d d f d d f d d f d d f d  d! f d" d# f d$ d% f d& d' f d( d) f d* d+ f d, d- f d. d/ f d0 d1 f d2 d3 f d4 d5 f d6 d7 f d8 d9 f d: d; f d< d= f d> d? f d@ dA f dB dC f dD dE f dF dG f dH dI f dJ dK f dL dM f dN dO f dP dQ f dR dS f dT dU f dV dW f dX dY f dZ d[ f d\ d] f d^ d_ f d` da f db dc f dd de f df dg f dh di f dj dk f d6 dl f dm dn f do dp f dq dr f ds dt f du dv f dw dx f dy dz f d{ d| f d} d~ f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d df d df ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d d!f d"d#f d$d%f d&d'f d(d)f d*d+f d,d-f d.d/f d*d0f d1d2f d3d4f d5d6f d7d8f d9d:f d;d<f d9d=f d>d?f d@dAf dBdCf dDdEf dFdGf dHdIf dJdKf dLdMf dNdOf dPdQf dRdSf dTdUf dVdWf dXdYf dZd[f d\d]f d^d_f d`d]f dadbf dcddf dedff d,dgf dhdif djdkf dldmf dndof dpdqf drdsf dtduf dvdwf dxdyf dzd{f d|dGf d}d~f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd?f ddf ddf ddf ddf ddf ddf ddf ddf dd<f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd!f d df ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d df dd f ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd f d!d"f d#d f d$d%f d&d'f d(d)f d*d+f d,d-f d.d/f d0d1f d2d3f d4d5f d6d7f d8d9f d:d;f d<d=f d>d?f d@dAf dBdCf dDdEf dFdGf dHdIf dJdKf d dLf dMdNf dOdPf dQdRf dSdTf dUdVf dWdXf dYdZf d[d f d\d]f d^d_f d`daf dbdcf dddef dfdgf dhdif djdkf dldmf dndof dpdqf drdsf dtduf dvdwf dxdyf dzd{f d|d}f d~df ddf ddf ddf ddf ddf ddf ddf ddf ddf d`df ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d~df ddf d`df ddf ddf ddf ddf ddf dde f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd f ddf ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d	d f d!d"f d#d$f d%d&f d'd(f dd)f d*d+f d,d-f d.d/f dd0f d1d2f d3d4f d5d6f d7d8f d9d:f d;d<f d=d>f d?d@f dAdBf dCdDf dEdFf dGdHf dIdJf dKdLf dMdNf dOdPf dQdRf dSdTf dUdVf dWdXf dYdZf d[d\f d]d^f d d f gZ d0 d1 f d2 d3 f d4 d5 f d6 d7 f d8 d9 f d: d; f d< d= f d> d? f d@ dA f dB dC f dD dE f dF dG f dH dI f dJ dK f dL dM f dN dO f dP dQ f dR dS f dT dU f dV dW f dX dY f dZ d[ f d\ d] f d^ d_ f d` da f db dc f dd de f df dg f dh di f dj dk f d6 dl f dm dn f do dp f dq dr f ds dt f du dv f dw dx f dy dz f d{ d| f d} d~ f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d df d df ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d d!f d"d#f d$d%f d&d'f d(d)f d*d+f d,d-f d.d/f d*d0f d1d2f d3d4f d5d6f d7d8f d9d:f d;d<f d9d=f d>d?f d@dAf dBdCf dDdEf dFdGf dHdIf dJdKf dLdMf dNdOf dPdQf dRdSf dTdUf dVdWf dXdYf dZd[f d\d]f d^d_f d`d]f dadbf dcddf dedff d,dgf dhdif djdkf dldmf dndof dpdqf drdsf dtduf dvdwf dxdyf dzd{f d|dGf d}d~f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd?f ddf ddf ddf ddf ddf ddf ddf ddf dd<f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd!f d df ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d df dd f ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd f d!d"f d#d f d$d%f d&d'f d(d)f d*d+f d,d-f d.d/f d0d1f d2d3f d4d5f d6d7f d8d9f d:d;f d<d=f d>d?f d@dAf dBdCf dDdEf dFdGf dHdIf dJdKf d dLf dMdNf dOdPf dQdRf dSdTf dUdVf dWdXf dYdZf d[d f d\d]f d^d_f d`daf dbdcf dddef dfdgf dhdif djdkf dldmf dndof dpdqf drdsf dtduf dvdwf dxdyf dzd{f d|d}f d~df ddf ddf ddf ddf ddf ddf ddf ddf ddf d`df ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d~df ddf d`df ddf ddf ddf ddf ddf dde f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf dd f ddf ddf ddf ddf d	d
f ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf ddf d	d f d!d"f d#d$f d%d&f d'd(f dd)f d*d+f d,d-f d.d/f dd0f d1d2f d3d4f d5d6f d7d8f d9d:f d;d<f d=d>f d?d@f dAdBf dCdDf dEdFf dGdHf dIdJf dKdLf dMdNf dOdPf dQdRf dSdTf dUdVf gZ dWdXf dYdZf d[d\f d]d^f d d f d d f d d f d d f d d f d d f d d f d d f d d f d d f d  d! f d" d# f d$ d% f d& d' f d( d) f d* d+ f d, d- f d. d/ f d0 d1 f g Z g  Z e D] \ Z Z e e e e  q9 [ Z e e  n d S(_  iN(   t   Pointt   Trianglet   blackt   greent   bluet   yellowt   redt   magentat   cyanc          C   s@   x9 t  i i   D]( }  |  i t  i j o t  i   t Sq Wt S(   N(   t   pygamet   eventt   gett   typet   QUITt   quitt   Truet   False(   R
   (    (    s*   /home/koubat/devel/python/triang/visual.pyt   process_events   s     
	c         C   sc  d } d } d } d }	 g  }
 |  D] } |
 | i  q# ~
 } g  } |  D] } | | i qG ~ } | o$ | i | i   | i | i  n | o$ | i | i   | i | i  n t |  } t |  } t |  } t |  } d } } | | j o | } | t | |  } n | | j o | }	 | t | |  } n g  } |  D]- } | | i  | | | | i |	 | f qQ~ } xt   o d St i t	  t
 i i t t |  x | D] } | i i  | | | | i i |	 | f | i i  | | | | i i |	 | f | i i  | | | | i i |	 | f g } t
 i i t t | d  | i oC t
 i i t t | i i  | | | | i i |	 | f d  qqW| o= t
 i i t t | i  | | | | i |	 | f d  n | o= t
 i i t t | i  | | | | i |	 | f d  n | oa g  } | D]- } | | i  | | | | i |	 | f qN~ } t
 i i t t t | d  n x | D] } | i i  | | | | i i |	 | f | i i  | | | | i i |	 | f | i i  | | | | i i |	 | f g } t
 i i t t | d  qWt
 i i   qd S(   s   
    Ocekavame, ze polygon je posloupnost dvojic bodu
    Triangles je seznam trojic bodu, ktere tvori samostatne trojuhelniky
    Vykresli i stredovy bod, pokud je pritomen
    i   i    i  Ni   i   (   t   xt   yt   appendt   maxt   mint   floatR   t   screent   fillR   R	   t   drawt   polygonR   t   p1t   p2t   p3R   t   centert   circleR   R   t   linesR   R   t   displayt   flip(   R   t	   trianglest   startt   endt   patht   debug_trianglest   scalext   scaleyt   shiftxt   shiftyt   _[1]t   pt   xst   _[2]t   yst   maxxt   maxyt   minxt   minyt   heightt   widtht   _[3]t   plgt   trt   trgt   _[4]t   plistt   dtrt   dtrg(    (    s*   /home/koubat/devel/python/triang/visual.pyt
   showTriang   s^    $$
A
 
G==A  c          C   s2   t  i   d }  d } t  i i |  | f  a d  S(   Ni  (   R	   t   initR"   t   set_modeR   (   R7   R6   (    (    s*   /home/koubat/devel/python/triang/visual.pyRA   R   s    
t   __main__iU ia iAU i|a ilT iBa iPT ia iS ia iMS ia i4S ia iS ia iR ia iQ ia ixQ ia i~Q ia irQ ia iSQ ia iCO i?a i~L ia iL ia iK i}a ihL ia iL i7a iL ia iL ia iL i-a ijL ia i2L i<a i9L ia iL ia iK ia iK ia i+L i,a i8L i
a iML ia iEL ia iL ia iK ia iK ipa i6L ia iAL i~a i<L ia i(L is
a iK i	a iK iE	a iK ia iK ia iK i3a iL ia iqL ia i<a iL ia iL ia iL i8a i+M ija i=M i{a iM ia iN i/a i(N i6a iCN iMa iJN iEa ihN iXa ivN ia iN ia iN ia iN ia iN ia iN ica iM ia iM iZa iM i$a i$M ia i"M ia i^M i@a i{M ia iM ia iM ia iN ia ioN ia iN ia iN ia iN ia iMO ia igO ia izO ia iO ia iO ia iO ia iO ia iO ia iFO ia iNN ia i4N ia i=N ia ia ibN ia iN i*a iN ia iN ia iN ia i$O ila iO i a iO i a iO i a iP ie a i!P i* a iQP i` iYP i` itP i'` inP i` i|P i` iP i` iP i` iP i` iP i1` iP i` iP i|` iQ i` i!Q i` iQQ i` iQ i` iQ i{` iQ i` iQ i` iQ i` iQ i` i` iQ i` iQ i` iQ i*` iQ i!` iQ i` iQ i` ix` iQ iY` iR i;` i/R i7` iVR i` iuR i` iR i` i%S i_` i?S i&` i*S i` i&S i` iOS i` iqS i` iiS i` iS iY` icS i` ikS i` i` iS i` iS i` iS i` iS iw` iS iI` iS i4` i` iS i` iS iB` i}S i3` iS i` iS i` iS iJ` iS iA` iS i-` iS i&` iT i` iT i` iT i` i]T i` iT i` iT i` iT i` iT i` iT iS i` iS i` iS i` i` i:S i` i'S i` iS i` iS i9` iR i:` iR i,` iR i"` iR i.` iR iS` iR ih` iR iR i` i|R i` irR i` ijR i` iiR i` i_R i!` iYR iJ` iKR it` i=R i` i` i` iQ i` iQ i` iQ i(` iQ i` iQ i` iQ itQ i` ifQ i` ilQ i` i` iQ i` iQ i
` iQ i` iQ i"` iQ i,` iQ i0` iQ i+` iuQ i/` i{Q i?` iQ iC` iQ iN` iQ iP` iY` iQ i\` iQ if` iQ il` iQ iz` i` iQ i` iQ i` iQ i` iQ iM` i` ihQ i` i:Q i` iP i` i\P iD` iP ig` iO i` iO i` iO i` iO i` i`O i^` i;O i` i%O i` iO i` i'O i` iO iC` im` i1O i` i7O i` iKO i` iTO i` i` i^O i` ieO i` ikO i` irO i#` iO i:` iO iX` iO iO i` iO i` iO i` iO i` ipO i` iaO i"` i@O it` iN ip` iN i;` iN i` iON iZ` i0N i` iN ip` iM i` iM i` iCM ia` i5M iM i}` iM i` iM i` iM i` iUM i` i`M i` i~M i}` iuM i` ijM i` iM i` iM i` iM i` iM i` iM i*` iM iP` i+N i` ieN i` iN i` iN i` iN i` i` ifN i a iN id a iM i a iM it a iK i` iK i	 a iK i a iJ iJ i$ a iJ i< a iJ iN a i
K iR a i:K iO a iqK ih a iK is a iK ir a iK i a iK i a iK i a iK ia iK i0a iK iNa i[K ia i4K ia iK ia iJ ia iJ i=a iJ iQa iJ ia iNa iJ i]a iJ isa ia iJ ia iJ ia ia iJ ia iJ ia iJ iFa i K i\a iK ia iCK i
a iUK iLa iWK iwa iAK ia i0K ia i"K ia iJ ia izJ ia ikJ iua iPJ iya i&J ila iI iGa iI i@a iI i/a iI ia iI ia iI i a iI i3a iI iDa iI iFa iI iea i-J ia iKJ ia iHJ ia iOJ ia itJ ia iJ i:a iJ iNa ica iJ ia ia i|J ifa iJJ ia i J ia iI ia iI iQa irI i6I ia i#I ia iI ia iH ia iH ia iH ia iI i(I ia iZI i	a inI i	a izI i
a iI i
a iI i
a iI ia iI i=a iI i:a iI i
a iI ia iI i$a iI i"a iI i7a iI iJa iI ima iI ila iI i{a iI ita iI ia ia iI ia iI ia iI ia iI ia ia iI ia iJ ia i*J ia i3J ia ia i8J i!a i9J iza i1J ia iHa i6J ia i:J iEa iDJ ipa iCJ ia i=J ia iWJ iYa iYJ ia iJ ia ilJ ia ieJ ia ioJ i8a ijJ i]a iaJ iza i\J i|a iUJ ia i_J ia i'I ia iH ia i<H ia iG ia iU ia iU ia iU ia (   R	   t   helpersR    R   t   ColorR   R   R   R   R   R   R   R   t   NoneR@   RA   t   __name__R.   R   R   R-   R   R   R9   (    (    (    s*   /home/koubat/devel/python/triang/visual.pyt   <module>   s^   	>		                             0