
    g0                         d dl mZmZ d dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZ d dlmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d	 Zd
 Zd ZdS )    )Rationalpi)S)Dummysymbols)sqrt)asincossin)
LinePointRaySegmentPoint3DLine3DRay3D	Segment3DPlaneCircle)are_coplanar)raisesc                  H<   t          dd          \  } }}}}t          ddd          t          ddd          }t          ddd          }t          ||          }t          d	          }t          |          }	t          |d
	          }
t          t          ddd          d	          }t          t          ddd          d	          }t          d	          }t          d	          }t          d	          }t          |d	          }t          t          ddd          t          ddd                    }t          t          ddd          t          ddd                    }t          t          ddd          t          ddd                    }t	          t
          fd           t          ||          t          ||          k    sJ t          ||                              t          ||                    sJ t          ||                                        sJ t          ||                              t          d                    du sJ t          d	                              t          d                    sJ |t          t          ddd          d	          k    sJ ||k    sJ ||	k    sJ |
t          t          ddd          d
	          k    sJ |
                    | ||          | d|z  z   d|z  z   dz
  k    sJ |                    | ||          | d|z  z
  |z   k    sJ |j	        k    sJ |j	        k    sJ |
j	        |k    sJ |j
        dk    sJ |
j
        d
k    sJ |v sJ |v sJ ||
v sJ |                    t          dd                    k    sJ |                    t          ddd                    t          t          dd          t          dd          t          dd                    k    sJ |v sJ |                    t          t          dd          t          dd                              }|t          t          ddd          t          t          dd          t          dd          t          dd                              k    sJ ||v sJ t!                      }|                                }|                    |                              |          }t)          |                    |d          |                    |d                    }|j	        |vr	|j        |vsJ |                    |                              |          sJ |                    t1          t          dd          t          dd                              t)          t          t          dd          t          dd          t          dd                    t          t          dd          t          dd          t          dd                              k    sJ |                    t3          t          dd          t          dd                              t5          t          t          dd          t          dd          t          dd                    t          t          dd          t          dd          t          dd                              k    sJ |                    |j                  |                    |          k    sJ |                    |          du sJ |                    |          sJ |                    t          |                    sJ |                    |          du sJ |                    |          sJ |                    |          sJ |                    |          sJ |                    |          du sJ |                    |          du sJ |                    t          dd                    sJ |                    d          du sJ |                    |                    ||                    dk    sJ |                    |                    ||                    dk    sJ |                    |                    |                    dk    sJ |                    |                    |                    dk    sJ |j	                            |                    |                                                    dk    sJ |j	                            |                    |                                                    dk    sJ |                    |          t          tA          d            tC          |          z  d z  dtA          d          z  tE          |          z  dz  z   tA          d           tC          |          z  d!z  tA          d          tE          |          z  dz  z   tA          d           tC          |          z  dz            k    sJ |                    ||          t          d|z  |z
  |d|z  z   d|z            k    sJ |                    t          ddd                    dtA          d          z  dz  k    sJ |                    t          ddd                    d"tA          d          z  k    sJ |                    |j	                  dk    sJ |                    |          dk    sJ |                    |          dk    sJ |                    t)          t          ddd          t          ddd"                              |                    t          ddd"                    cxk    rd"tA          d          z  dz  k    sn J |                    t)          t          ddd"          t          ddd                              |                    t          ddd                    cxk    rdtA          d          z  dz  k    sn J |                    t)          t          ddd          t          ddd                              dk    sJ |                    t)          t          ddd          t          ddd                              dk    sJ |                    t)          t          ddd          t          d#dd$                              |                    t          ddd                    cxk    rdtA          d          z  dz  k    sn J |                    t          t          ddd          d%	                    tA          d          k    sJ |                    t5          t          ddd"          g d&'                    d"tA          d          z  dz  k    sJ |                    t5          t          ddd          g d('                    dk    sJ |#                    |          tH          dz  k    sJ |#                    |          dk    sJ |#                    |          dk    sJ |#                    t          t          ddd          t          dd"d                              tK          tA          d          dz             k    sJ |#                    t5          t          dd"d          t          ddd                              tK          tA          d          dz            k    sJ |#                    t)          t          ddd          t          ddd"                              tK          dtA          d)          z  d)z            k    sJ tM          |||          du sJ tM          |          du sJ tM          t          ddd          t          ddd          t          ddd          t          ddd                    sJ tM          t          ||          t          ||                    sJ t          j'        |||
          du sJ t          j'        |          du sJ t	          t
          d*            t	          t
          d+            |(                    t          ddd                    t          t          ddd          d	          k    sJ t          dd,          )                                t          t          ddd          d-          k    sJ )                    t          ddd                    t          t          ddd          d-          k    sJ )                    d.d          t          t          ddd          d/          k    sJ t	          t
          fd0           t          ddd          t          ddd          }}d}t          ||	          )                    ||          t          |d,          k    sJ t          | })                    ||          t          |d1          k    sJ t          ||j        	          )                    |||z             t          t          ddd          d,          k    sJ t          ||	          )                    |||z             t          t          ddd          d1          k    sJ t          ||j        	          )                    |||z             t          t          ddd          d,          k    sJ t          |d	          )                                t          |d,	          k    sJ |*                    |          |gk    sJ |*                    |j	                  |j	        gk    sJ |*                    |          t          t          d2d"d          t          dd"d                    gk    sJ |*                    t          t          ddd"          t          d"d"d                              t          dt          d2d          t          dd                    gk    sJ |*                    t          t          ddd          d3	                    t          t          d4d5d          t          d6d7d                    gk    sJ |*                    t5          t          ddd          t          ddd"                              t          ddd          gk    sJ |*                    t)          t          ddd          t          ddd"                              g k    sJ |*                    t          t          dd          t          d"d                              t          t          dd          t          dd"          d          gk    sJ t3          t          dd          t          d"d                    }t          d8d	          *                    |          t5          t          dd          t          d"d                    gk    sJ |*                    |          t          t          ddd          t          d9dd                    gk    sJ |*                    |          t          t          ddd          t          ddd                    gk    sJ |*                    |          t          t          ddd          t          ddd                    gk    sJ |*                    |          g k    sJ |*                    |          t          t          ddd          t          d9dd                    gk    sJ |*                    |          t          t          ddd          t          d9dd5                    gk    sJ |                                |v sJ |                    d:          |v sJ |*                    |j	                  d                             |j	                  sJ |*                    |          d                             t          t          d2d"d          t          dd"d                              sJ t          d8d	          }|*                    t          d;                    d                             t          dd<                    sJ |*                    t5          d;                    d                             t3          dd;                    sJ |*                    t)          d=                    d                             t)          d=                    sJ |*                    t          d>	                    d                             |          sJ |*                    t          d	                    d                             t          d?tH          z  ddf'                    sJ |*                    t          d@	                    d                             t          dA'                    sJ |*                    t          dB	                    d                             t          dC'                    sJ |*                    t          dD	                    d                             t          dE'                    sJ |                                |v sJ tW          |*                    t5          t          ddd          t          ddd                                        dk    sJ |*                    |          d                             |          sJ |                    t          d	                    du sJ |                    |          sJ |                    t          dF	                    sJ |                    t          ddd5tA          d          z  f	                    sJ |                              du sJ t          t          t          dGdH          t          dIdJ          t          dKdL                    t          t          dGdM          t          dNdO          t          dKdL                              }t          t          t          dPdL          t          dQdL          t          dRdL                    tY          dS           tY          dT           tY          dU          f          }t[          dV |*                    |          D                       dWk    sJ d S )XNz	x y z u vT)realr            r   r   r   normal_vectorr   r   r      )r   r   r   i)r   r   r   r   r   )r      r   )r#   r   r      r#   	   c                  &    t                       S )Nr   )p1s   [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/geometry/tests/test_plane.py<lambda>ztest_plane.<locals>.<lambda>   s    uRR00     F            
   r   r   r   )r   r               )   r:   r:   )r   r   r8   )direction_ratio)r'   r   r      c                  H    t          j        t          ddd                    S )Nr   )r   are_concurrentr    r.   r,   r-   ztest_plane.<locals>.<lambda>   s    u3GAq!4D4DEE r.   c                  $    t          dd          S )Nr    r4   r   r*   r?   r.   r,   r-   ztest_plane.<locals>.<lambda>   s    uYiHHH r.   r   r   r   )r   r   r   r   r   r   )r   r   r'   c                  2                          ddd          S )NrB   r   )r   r   r   )perpendicular_plane)ps   r,   r-   ztest_plane.<locals>.<lambda>   s    q44Y	9UU r.   )r'   r   r   r:   )r   r"   r   iii)r   r   r   r%   )seed)r   r%   r   )g?g333333?r   )   r   r   )r   r   p   rI   )r1   r   r   )r   r   )r   r   r1   )r   r1   r   )r'   r'   rJ   )r   r'   r   )r   r   rF   l   q,5 l    PrN0l6/, l     I5 l   AP<IK l    @ k l     z5 lAk3+ l     cR~ l   muJ9 l1a l   n!c z9.00000087501922z4.81170658872543e-13z0.0c                 8    g | ]}|                     d           S )r   )n).0is     r,   
<listcomp>ztest_plane.<locals>.<listcomp>   s"    4441A444r.   z[Point3D(4.0, -0.89, 2.3)]).r   r   r   r   r   
ValueErroris_coplanarr   equationr+   r   
projectionr   r   projection_liner   r   random_pointperpendicular_linearbitrary_pointr   subsp2equalsr   r   r   argsis_parallelis_perpendiculardistancesimplifyr   r   r
   angle_betweenr   r	   r   r>   parallel_planerD   intersectionlenr   str)xyzuvrY   p3pl3pl4pl4bpl5pl6pl7pl8pl9pl10pl11l1l2l3ltrasbZrL   rE   r+   s                               @@r,   
test_planer      s   Kd333MAq!Q	Aq		B	Aq		B	Aq		B
B

C
)
,
,
,CR==D
)
,
,
,C
1a  	
:
:
:C
2r""*
=
=
=C
)
,
,
,C
*
-
-
-C:...D9---D	1a  '!R"3"3	4	4B	2q!!71a#3#3	4	4B	2q!!71b!#4#4	5	5B
:0000111Rb"b 1 11111R((r2r):):;;;;;R((,,,,,R((A775@@@@9---99&Q--HHHHH%1a((
CCCCCCC#::::$;;;;%1a((	BBBBBBB<<1a  A!GacMB$66666<<1a  A!GaK////6R<<<<6R<<<<6R<<<<	))))	))))999999999999>>%1++&&",,,,wq!Q''((AAAAGGGGGG8888Dq!eAqkk::;;Awq!Q''!Q!QQYZ[]^Q_Q_)`)`aaaaaa8888 	AAq!!11!44A!&&A,,q!--A4s??qt3q!!((+++++wuQ{{E!QKK@@AA!Q!Q"aQQSZ[cdegh[i[ikstuwxkyky  |D  EF  HI  |J  |J  TK  TK  L  LL L L Ls5A;;a<<==WXb!__hr1ooxAOOQXYabdfgYhYhjrsuwxjyjy  |D  EG  IJ  |K  |K  RL  RL  M  MM M M M!!!&))S-C-CA-F-FFFFF??35((((??3??4B<<(((((??2%''''$$$$$$$$$$$$$$$$$----##u,,,,Y	 : :;;;;;''50000<<++Aq1122a7777<<++Aq1122a7777<<++A..//14444<<++A..//144446??3..q1122;;==BBBB6??3..q1122;;==BBBBq!!Wd2hhYs1vv-=b-@	$q''	#a&&. HHSVVOB.aQ1AA488CPQFF?STCT&V &V V V V Vq!$$!aQqS!A#(F(FFFFF<<1a(())QtAwwYq[8888<<1a(())QtAwwY6666<<1$$$$<<!!!!<<q    <<	'!Q"2"2GAq!4D4DEEFFWQ1%%&&6 6 6 6*+DGG)A+6 6 6 6 6 6<<	'!Q"2"2GAq!4D4DEEFFWQ1%%&&6 6 6 6*+DGG)A+6 6 6 6 6 6<<	'!Q"2"2GB24F4FGGHHAMMMM<<	'"a"4"4gb!R6H6HIIJJaOOOO<<	'"a"4"4gb!R6H6HIIJJWRB''((8 8 8 8,-d1ggIaK8 8 8 8 8 8<<gaA..iHHHIITRSWWTTTT<<gaA..


KKKLLPQRVWXRYRYPYZ[P[[[[[<<gaA..


KKKLLPQQQQQ S!!RT))))S!!Q&&&&S!!Q&&&&VGAq!$4$4gaA6F6FGGHH	d1ggai   U71a#3#3WQ15E5EFFGGT!WWQY   Ywq!Q'7'7Aq9I9IJJKKQtCyy[_    B##u,,,,u$$$$1a(('!Q*:*:1a'!Q**, , , , ,b"b))5R+<+<=====S#..%7777$$----
:EEFFF
:HHIIIgaA..//5Aq9I9IDN4P 4P 4P P P P P 	i##A  ""eGAq!,<,<i&H&HHHHH  Aq!1!122gaA	**+ + + +   I66gaA
++, , , , :UUUUVVV1aWQ1--qAAaq!!!A  A&&%9*=*=====A  A&&%:*>*>>>>>!&)))==aQGGgaA	**+ + + + !$$$88AEBBgaA
++, , , , !&)))==aQGGgaA	**+ + + + 	ay)))A  ""eAY&G&G&GGGGGC  SE))))CF##x////C  wq!QAq!1!122%4 4 4 4 4F71Qq>>71Qq>>BBCC8Aq>>8B??33H5 5 5 5 5E'!Q"2"2*MMM 
 
WS#q))73R+@+@AABC C C CE'!Q"2"2GAq!4D4DEEFFArK    IgaA&6&61a8H8HIIJJbPPPPDq!eAqkk::;;Q!Q33@5 5 5 5 5E!QKKq!%%A000==a@@eAqkk5A;;''E) ) ) ) )C  VGAq!,<,<gb!Q>O>O%P%P$QQQQQT""vgaA.>.>1a@P@P'Q'Q&RRRRRC  VGAq!,<,<gaQ>O>O%P%P$QQQQQS!!R''''D!!fWQ1-=-=wr1a?P?P&Q&Q%RRRRRC  VGAq!,<,<gb!S>Q>Q%R%R$SSSSS$$$$##s**** CF##A&--cf55555C  #**6'!Q2B2BGAqRSDTDT+U+UVVVVV
	
3
3
3CF2z2233A6==d9m>\>\]]]]]E"j112215<<SJ=W=WXXXXXIb*5566q9@@2zAZAZ[[[[[E"K@@@AA!DKKCPPPPPE"J???@@CJJrC"Ha#34446 6 6 6 6E"J???@@CJJr;///1 1 1 1 1E"J???@@CJJr:...0 0 0 0 0E"MBBBCCAFMMr:...0 0 0 0 0$$$$sgaA&6&61a8H8H I IJJKKqPPPPC  #**3/////::eBj999::eCCCC::c??::eBk:::;;;;;::eBq!Sa[.ABBBCCCCC::b>>U"""" 
?? !13CDD /BBD D @@ !1?CC /BBD D
E 
EB 
wxAAAAAAC C %&&&+A)B)B(B%
 
B 44 3 344455'( ( ( ( ( (r.   c            	      Z   t          t          ddd          d          } t          dd          }|                     |          t          t	          dd          t	          dd          t	          dd                    k    sJ t          dd          t          dd          }}d}t          ||          }|                    ||          t          t          ddd          d	          k    sJ t          d
dd                              d          t          ddd          gk    sJ d S )Nr   r   r   r   r&   r   r   r$   rA   )r   r   r   )r   r   r   )r   r   r   )r   r   )r   r   r   rS   r   rD   rb   )Ar}   r{   r~   rE   s        r,   test_dimension_normalizationr      s!   gaAi888AaA<<??eHQNNHQNNHQPQNNSSSSSSA;;1qAAaq!!!A  A&&%1a0@0@)*L*LLLLLIy 
 

,v

5Aq>>"23 3 3 3 3 3r.   c                  D   t          d          \  } }t          ddd          t          ddd          t          ddd          }}}t          |||                              d          t	          dt          d          z  dz            ik    sJ                     d| |          | d|dik    sJ                     |          |k    sJ t          t          fd           t          t          fd	           t          t          fd
           d S )Nzt, u vr   r   r   r8   r   r   r2   r   c                  0                          d          S )NrA   parameter_valuerE   ry   s   r,   r-   z&test_parameter_value.<locals>.<lambda>
  s    q00A>> r.   c            	                                t          t          dd          t          dd                              S )Nr   r   )r   r   r   r   s   r,   r-   z&test_parameter_value.<locals>.<lambda>  s2    q00eAqkk5A;;1O1OQRSS r.   c                  2                          dd          S )Nr   r   r   r   s   r,   r-   z&test_parameter_value.<locals>.<lambda>  s    q00QBB r.   )r   r   r   r   r	   r   r   rP   )rh   ri   r+   rY   rj   rE   ry   s        @@r,   test_parameter_valuer     s8   hGAq!q!Qq!Qq!QBBb"bAZ++4$r((
23F3F/GGGGGZA..1aA,>>>>R##r))))
:>>>>>???
:SSSSSTTT
:BBBBBCCCCCr.   N) sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr	   r
   r   sympy.geometryr   r   r   r   r   r   r   r   r   r   sympy.geometry.utilr   sympy.testing.pytestr   r   r   r   r?   r.   r,   <module>r      s#   - - - - - - - - " " " " " " . . . . . . . . 9 9 9 9 9 9 E E E E E E E E E E f f f f f f f f f f f f f f f f f f f f f f f f , , , , , , ' ' ' ' ' 'h( h( h(V
3 
3 
3	D 	D 	D 	D 	Dr.   