OwlCyberSecurity - MANAGER
Edit File: proj3d.cpython-38.pyc
U ��]p � @ s0 d Z ddlZddlmZ ddlmZ e�d�dd� �Ze�d�dd� �Z d d � Z e�d�dd� �Zejdd d�dd� �Zdd� Z dd� Zdd� Zdd� Zdd� Ze�d�dd� �Zdd� Ze�d�dd � �Zd!d"� Zd#d$� Ze�d�d%d&� �Zd'd(� ZeZd)d*� Zd+d,� Zd-d.� Ze�d�d/d0� �Zd1d2� ZdS )3z, Various transforms used for by the 3D code � N)�cbookz3.1c C sx | dd� \}}|dd� \}}||kr6d}d}|}n8||krNd}d}| }n || }|| }|| || }|||fS )z< Return 2D equation of line in the form ax+by+c = 0 N� ���r � � ) �p0�p1�x0�y0Zx1Zy1�a�b�cr r �=/usr/lib/python3/dist-packages/mpl_toolkits/mplot3d/proj3d.py�line2d s r c C s6 | \}}}|\}}t || || | t�||� �S )zQ Distance from line to point line is a tuple of coefficients a, b, c )�abs�np�hypot)�l�pr r r r r r r r �line2d_dist# s r c C s� |d | d }|d | d }t �|d �| d }t �|d �| d }|| || |d |d }t �|dd�}t �||| ||| �}|S )��distance(s) from line defined by p1 - p2 to point(s) p0 p0[0] = x(s) p0[1] = y(s) intersection point p = p1 + u*(p2-p1) and intersection point lies within segment if u is between 0 and 1 r r r )r ZasarrayZclipr ) r �p2r Zx21Zy21Zx01Zy01�u�dr r r �_line2d_seg_dist. s r c C s t | ||�S )r )r )r r r r r r �line2d_seg_distD s r znp.linalg.norm)Zalternativec C s* t �| d d | d d | d d �S )z3d vector lengthr r r )r Zsqrt)�vr r r �modQ s r c C sl || || || }}}t �d| dd| | gdd| d| | gddd| | | gddddgg�S �Nr r �r �array) ZxminZxmaxZyminZymaxZzminZzmaxZdxZdyZdzr r r �world_transformationW s �r! c C s� | | }|t j�|� }t �||�}|t j�|� }t �||�}|d |d |d dg|d |d |d dg|d |d |d dgddddgg}ddd| d gddd| d gddd| d gddddgg}t �||�S )Nr r r )r �linalgZnormZcross�dot)�E�R�V�nr r ZMrZMtr r r �view_transformationa s � �r( c C sV | | | | }d| | | | }t �ddddgddddgdd||gddddgg�S )N���r r r r �ZzfrontZzbackr r r r r �persp_transformation� s �r+ c C sF | | }| | }t �ddddgddddgddddgdd||gg�S )Nr r r) r r* r r r �ortho_transformation� s �r, c C sF t �|| �}|d }|d | |d | |d | }}}|||fS �N� r r r )r r# )�vec�M�vecw�w�txs�tys�tzsr r r �_proj_transform_vec� s (r6 c C s t | |�S �N)r6 �r/ r0 r r r �proj_transform_vec� s r9 c C s� t �|| �}|d }|d | |d | |d | }}}d|d k|d dk@ d|d k@ |d dk@ }t �|�r�|d dk }||||fS r- )r r# �any)r/ r0 r1 r2 r3 r4 r5 Ztisr r r �_proj_transform_vec_clip� s (0 r; c C s t | |�S r7 )r; r8 r r r �proj_transform_vec_clip� s r<