%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/lib/python3/dist-packages/reportlab/graphics/charts/__pycache__/
Upload File :
Create Path :
Current File : //usr/lib/python3/dist-packages/reportlab/graphics/charts/__pycache__/utils3d.cpython-312.pyc

�

��d��J�ddlmZmZmZd6d�Zd6d�Z		d7d�ZGd�d�Zd	�Z			d8d
�Z	ddl
mZedzZd
ezZ
dezZd�Zd�Zd�Zd�ZdZdez
ZGd�d�Zd�Zd9d�Zedk(r�ddlmZddlmZmZedd�Zeeddddd d ee�!�	eed"d#dd$d d ee�!�	ej;d%gd&d'�(�eegd)�gd*�gd+�g��eed,d-gd.d/gg��eed0d-gd1d/gg��eed2d3gd/d4gg��eegd)�d2d3ggd5�g��yy):�)�Drawing�Polygon�LineNc�2�|�ddlm}|r||d|z
�}|S)Nr)�Blacker�)�reportlab.lib.colorsr)�col�shd�shadingrs    �C/usr/lib/python3/dist-packages/reportlab/graphics/charts/utils3d.py�
_getShadedrs!��
�{�0��g�c�!�G�)�,���J�c�2�|�ddlm}|r||d|z
�}|S)Nr)�Whiterr)r	r)r
r�lightingrs    r
�_getLitr	s!��
�{�/��f�S��8��,���Jrrc�T�t|d|�}t|d|dz�}||	|
|fd�}
t||�}|s|r#||k7r|
|||||||��|
|||||||��|jt||||||||f|	|
|d���|s|r%|jt	|||||
|	xs|���yy)Ng@c
�j�|jt||||z||z||z||z||f|||	d���y)Nr)�strokeWidth�strokeColor�	fillColor�strokeLineJoin)�addr)
�x1�x2�y1�y2�xoff�yoff�Grrrs
          r
�_add_3d_barz!_draw_3d_bar.<locals>._add_3d_barsD��	���g�r�"�b��g�b��g�r�$�w�r�$�w��2�F�#��	�ab�d�	er)rr)rrrr)rr)r�maxrrr)r!rr�y0�yhigh�xdepth�ydepthr�fillColorShadedrrr�fillColorShadedTopr"�usds               r
�_draw_3d_barr+s���!��4��8�O�#�I�d�7�3�;�?���K�[�T]�e�
�b�%�.�C�
��
�u�9���R��U�F�F�o�V��B��C��f�f�@R�S��E�E�'�2�b��B�r�%��5�1��[�I�]^�`�a���	���d�B��R��+�;�Ki�Zi�j�k�rc��eZdZdd�Zy)�_YStripc�`�||_||_||_||_t	|||�|_y�N)r$r�sloperrr()�selfr$rr0rr(rs       r
�__init__z_YStrip.__init__)s/����������
�"���)�)�O�G�L��rN)皙�����?)�__name__�
__module__�__qualname__r2�rr
r-r-(s��Mrr-c�.�||||z||z||z||z||gSr/r7)�x0rr$rrr s      r
�_ystrip_polyr:0s)���r�"�T�'�"�T�'�"�T�'�"�T�'�"�R�8�8rc���t||z
�}||z}||z}|dk(xrdxs|t|�z}t||z
�}|dk(xrdxs||z
|z}||kDxr
t|	|
|�xs|	}||z}||z}d}|�||fg}n�||z
dz||z
dzzdz}||z}||kr||fg}nqt|t|�z�dz}t||z
�|z}t||z
�|z}g}|j}td|�D]} |||| zz||| zzf��|j}||z}!||z}"|D]>\}}#||z}$|#|z}%tt|!|$|"|%||�|||��}&|d|||!|"|&f�|$}!|%}"�@y)Nrg��P.5�_g333333�?���?r)rrr)	�abs�floatr�int�append�rangerrr:)'r!r9rr$r�z0�z1�theta_x�theta_yrr(�	tileWidthrr�strokeDashArrayr�zwidthr&r'�depth_slope�xr0�c�zy0�zx0�tileStrokeWidth�D�T�n�dx�dy�a�i�x_0�y_0�y�x_1�y_1�Ps'                                       r
�_make_3d_line_infor]4s���
��B��Z�F�
�G�^�F�
�G�^�F��1�9�&��?�6�'�%��-�*?�K�
�b��e��A�
�q�D�N�U�'�r�"�u�a�i�E�
�k��K�j��?�7�K�X�y�A�
�W�*�C�
�W�*�C��O�����W�I����e�a�Z��B���
�
"�S�(���9�$���Y�;��R��	�A��A�e�I�&�&�'��)�A��r�"�u��a��B��r�"�u��a��B��A����A��1�Q�Z�
%���2�b��d�7�2�b��d�7�#�$�
%�	
���A�
�S�&�C�
�S�&�C�����!���e����e���L��c�3��V�V�D� !�q�o�
O��	�1�R��3�s�1�
������r)�pir=r<g�f@c��|tzSr/��_180_pi)�angles r
�_2radrcgs����=�rc�4�|tz}|dkr	|tz
}|S)N���ư�)�_2pi)�radianss r
�mod_2pirhjs����n�G��u�}�g��o�g��Nrc��|tzSr/r`)�os r
�_2degrkos���W�9�rc�$�|dz}|dkr|dz
}|S)Nihrer7�rUs r
�_360rnrs����H�A���w��S����Hr�:�0�yE>c�"�eZdZd�Zd�ZeZd�Zy)�_Segmentc�(�||}||dz
d}||dz
d}||d}||d}||kr||||f\}}}}t||z
�|_t||z
�|_||_||_||_||_||_||_||_	y)Nrr)
r?rU�br9rr$r�seriesrV�s)	r1rurV�data�Sr9r$rrs	         r
r2z_Segment.__init__zs�����G��
�q��s�V�A�Y��
�q��s�V�A�Y��
�q�T�!�W��
�q�T�!�W��
�b�5��R��2�+�K�B�r�"�R��r�"�u�����r�"�u������������������������rc	�p�d|j�d|j�d|j�d|j�d�	S)Nz[(�,z),(z)])r9r$rr)r1s r
�__str__z_Segment.__str__�s!��&*�g�g�d�g�g�d�g�g�d�g�g�F�Frc�d�|j}|j}||ksJ�||jkDry|j|jk(r+|j|jdz
|jdzfvry|j}|j
}|j}|j
}||z||zz
}	d|	cxkrdkry||z
}
|j|jz
}||z||
zz
|	z}||z||
zz
|	z}
|dks|dkDs
|
dks|
dkDry|||zz}|j||zz}t|cxkr	tkr2nn/|j|j||f}||vr|j|�t|
cxkr	tkr4ny|j|j||f}||vr|j|�yyy)z4try to find an intersection with _Segment o
        rNg:�0�yE�ror)
r9rrurVrUrsr$�_ZERO�_ONErA)r1rj�Ir9�ox0rUrs�oa�ob�detrSrT�u�ourKrY�ts                 r
�	intersectz_Segment.intersect�s����W�W���d�d���3�w��w��t�w�w�;�q��3�3����;�1�3�3�4�6�6�!�8�D�F�F�1�H�"5�5�v��F�F���F�F��
�S�S��
�S�S����d�R��T�k����>�T�>�6�>�
�#�X��
�W�W�q�t�t�^��
��U�R��U�]�C�����d�Q�r�T�k�3�
���Q�3�!�A�#��A���A��v���1��H���G�G�a��c�M����<�4�<����t�v�v�a��!�A���z�1�8�8�A�;���=�D�=����A�C�C��!��A���z�A�H�H�Q�K�z�rN)r4r5r6r2rz�__repr__r�r7rr
rqrqys���*G��H�(rrqc��|j|j|j|j|j|j
fSr/)r9rr$rrurVrms r
�_segKeyr��s-��
�D�D����a�d�d�1�4�4����A�C�C�(�(rc��g}|j}tt|��D]g}||}|s�t|�}|dk(r�td|�D]=}t|||�}|jt|j�z|k\s�6||��?�i|jt��g}	t|�}td|dz
�D]5}||}t|dz|�D]}
|j||
|	�dk(s��5�7|	j�|	S)aV
    data is a sequence of series
    each series is a list of (x,y) coordinates
    where x & y are ints or floats

    find_intersections returns a sequence of 4-tuples
        i, j, x, y

    where i is a data index j is an insertion position for data[i]
    and x, y are coordinates of an intersection of series data[i]
    with some other series. If correctly implemented we get all such
    intersections. We don't count endpoint intersections and consider
    parallel lines as non intersecting (even when coincident).
    We ignore segments that have an estimated size less than small.
    r)�keyr)
rArB�lenrqrUr>rs�sortr�r�)rv�smallrwrUru�dsrRrV�segr~�js           r
�find_intersectionsr��s��$	�A�	���A�
�3�t�9�
�/��
�!�W���8���G���a�4���q���	/�A��1�Q�t�$�C��u�u�S����Z���&��#��	/�/��F�F�w�F��
�A��A��A�
�1�Q�q�S�\�-��
�a�D���q��s�1��	-�A��{�{�1�Q�4��"�A�%�u�	-�-��F�F�H��Hr�__main__)r)�	lightgrey�pinki,���
��2�)rr��(�-�pdf�.r+)�formats�outDir�fnRoot))rr=)rr=)r=r)r=r))g�:�?皙�����?�r3r��r3皙�����?�rr�rr)�rr�r�r3�rr3r�r�r�r�)r�r��r3g�������?r�r�r�)r�r�r�)Nr3)NNNrr3)NrNNNr3)r)�reportlab.graphics.shapesrrrrrr+r-r:r]�mathr^�_pi_2rfrarcrhrkrnr|r}rqr�r�r4r	r�r�rP�save�printr7rr
�<module>r�s���<�<���15�9<�l�0M�M�9�@A�HL��	,�\�
�3�����t���R�����
�
�
	
����w��5(�5(�n)�$
�L�Z��1�4���C��A���B��B��A�q�I�4�P���B��B��A�q�I�4�P��F�F�E�7�#�^�F�<�	�
�?�@s�uN�O�P�Q�	�
�z�:�6���8L�M�
N�O�	�
�z�:�6��Z�8P�Q�
R�S�	�
�u�U�m�Y�w�,?�@�
A�B�	�
�?��u�
�Nk�l�
m�n�r

Zerion Mini Shell 1.0