;i |dZddlmZddlZddlZejdZej Z e dej Ze eeddddej dZeeddejdddd gdd Zed d eeddejZeedddde eZeejddgddgddgddgddggddZeeej dd Z!ee!e"gda#dZ$ej%&e$ej'&e$e$e(dkrej)dSdS)z& Displays an interactive Koch fractal )reduceNzFractal Examplezpyqtgraph example: fractal demozfractal depth: T)valuestepboundsdelayintdg?)rrr F)penmovable)rrr)r antialias)rrNc t}td}t |dz }||z}g}|d|dz }|}t t |dz D]~}||}||dz} | |z } ||dz } | |} | |z } |tj | | | f| ddtdD}tj d|D ddd}tdd||gkr||z}tj||ft }t |D]K}tjtjtj|||dz |z z||z||<L|||gatd}||}d }t)||}tj||zdzdf}t t |D]>}||}tj||ddddf||dt |<?|ddd|d<t,|dddf|dddfdS) Npointsrr)posscaleanglecXg|]'}tjt|dgz(S)r)nparraylist).0pts NC:\PYTHON\MyICR_Workspace\venv\Lib\site-packages\pyqtgraph/examples/fractal.py zupdate..>s.PPPBrxRA3''PPPc@g|]}|jS)matrixT)rtrs r!r"zupdate..?s"666B"))++-666r#r)dtypec|tjtj|dd|ddddfzdS)N)rrr).N.)axis)rsum transpose)abs r!matmulzupdate..matmulTs<vbl1W--i81S$\?JQSTTTTr#) depthSpinrbaseLinegetStatelenlengthrangerappendpg SRTTransformrdstackr. transformMapemptyr tilerepeatarangerdotfcsetData)depthptsnbsegnsegtrsv1l1ip1p2v2trsbasePtsbaseMatsmatIndsmatsr1lbps r!updaterX)s OO  E     h 'C HHqLE %))e|(E4=444u \ \A29U+;+;UU1WQY=O!P!PRWYZRZ[[GAJJug. 1oG G DUUU &$  D (D5L1$a( ) )C 3s88__55 QZVD"--aaa!e4AbSMbk"1"oCGJJs111Q3xQQQqS"""""r#__main__)*__doc__ functoolsrnumpyr pyqtgraphr9mkQAppapp QtWidgetsQWidgetwinsetWindowTitle QGridLayoutlayout setLayoutsetContentsMarginsQLabel depthLabel addWidgetSpinBoxr2resizeGraphicsLayoutWidgetwshow addViewBoxvsetAspectLocked PolyLineROIr3addItem PlotCurveItemrB autoRanger<rXsigRegionChangedconnect valueChanged__name__execr%r#r!r|sbi!"" l4555  ! ! # # f!Q1%%% \ !1 2 2 Q""" BJQQ2waT J J J bAq!!!BAq!Q LLNN 2>Aq6Aq6C8aVaVDJZdi j j j (R.$??? "  || 9#9#9#z !!&))) v&&& z BGIIIIIr#