package Ġio . github . ag com . quad tree . nodes Ċ Ċ import Ġjavafx . scene . canvas . Canvas Ċ import Ġjavafx . scene . paint . Color Ċ import Ġjavafx . scene . paint . Paint Ċ import Ġio . github . ag com . quad tree . quad tree . Quad Tree Ċ import Ġio . github . ag com . quad tree . quad tree . geometry . Circle Ċ import Ġio . github . ag com . quad tree . quad tree . geometry . Point Ċ import Ġio . github . ag com . quad tree . quad tree . geometry . Rectangle Ċ import Ġkotlin . time . Experimental Time Ċ Ċ fun ĠPoint . draw ( canvas : ĠCanvas , Ġradius : ĠDouble Ġ= Ġ 4 . 0 , Ġpaint : ĠPaint Ġ= ĠColor . BLACK ) Ġ{ ĊĊĠĠĠ Ġcanvas . graphics Context 2 D . apply Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsave () ĊĊĠĠĠĠĠĠĠ Ġfill Ġ= Ġpaint ĊĠĠĠĠĠĠĠ Ġfill O val ( x Ġ- Ġradius , Ġy Ġ- Ġradius , Ġradius Ġ* Ġ 2 , Ġradius Ġ* Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġrestore () ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠCanvas . clear () Ġ= Ġgraphics Context 2 D . clear Rect ( 0 . 0 , Ġ 0 . 0 , Ġwidth , Ġheight ) Ċ Ċ fun ĠRectangle . draw ( canvas : ĠCanvas , ĠstrokeWidth : ĠDouble Ġ= Ġ 1 . 0 , Ġstroke Paint : ĠPaint Ġ= ĠColor . BLACK ) Ġ{ ĊĊĠĠĠ Ġcanvas . graphics Context 2 D . apply Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsave () ĊĊĠĠĠĠĠĠĠ Ġstroke Ġ= Ġstroke Paint ĊĠĠĠĠĠĠĠ ĠlineWidth Ġ= ĠstrokeWidth ĊĠĠĠĠĠĠĠ Ġstroke Rect ( x . toDouble (), Ġy . toDouble (), Ġwidth . toDouble (), Ġheight . toDouble ()) ĊĊĠĠĠĠĠĠĠ Ġrestore () ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ @ Experimental Time Ċ fun ĠQuad Tree . draw ( canvas : ĠCanvas , ĠstrokeWidth : ĠDouble Ġ= Ġ 1 . 0 , Ġpoint Radius : ĠDouble Ġ= Ġ 4 . 0 , Ġstroke Paint : ĠPaint Ġ= ĠColor . BLACK , Ġpoint Paint : ĠPaint Ġ= ĠColor . BLACK ) Ġ{ ĊĊĠĠĠ Ġcanvas . graphics Context 2 D . apply Ġ{ ĊĊĠĠĠĠĠĠĠ Ġsave () ĊĊĠĠĠĠĠĠĠ Ġboundary . draw ( canvas , ĠstrokeWidth , Ġstroke Paint ) ĊĊĠĠĠĠĠĠĠ Ġpoints . forEach Ġ{ Ġit . draw ( canvas , Ġpoint Radius , Ġpoint Paint ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġif ( is Div ided ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left !!. draw ( canvas , ĠstrokeWidth , Ġpoint Radius , Ġstroke Paint , Ġpoint Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right !!. draw ( canvas , ĠstrokeWidth , Ġpoint Radius , Ġstroke Paint , Ġpoint Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left !!. draw ( canvas , ĠstrokeWidth , Ġpoint Radius , Ġstroke Paint , Ġpoint Paint ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right !!. draw ( canvas , ĠstrokeWidth , Ġpoint Radius , Ġstroke Paint , Ġpoint Paint ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġrestore () ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠRectangle . get Area Shape (): ĠArea Shape Ġ{ ĊĊĠĠĠ Ġval Ġrect Shape Ġ= Ġjavafx . scene . shape . Rectangle ( width . toDouble (), Ġheight . toDouble (), Ġnull ). run Ġ{ ĊĊĠĠĠĠĠĠĠ Ġstroke Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠ ĠstrokeWidth Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġthis ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġobject Ġ: ĠArea Shape ( this , Ġrect Shape ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmove ( x : ĠInt , Ġy : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea Ġas ĠRectangle ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea . x Ġ= Ġx ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea . y Ġ= Ġy ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ fun ĠCircle . get Area Shape (): ĠArea Shape Ġ{ ĊĊĠĠĠ Ġval Ġcir Shape Ġ= Ġjavafx . scene . shape . Circle ( radius . toDouble (), Ġnull ). run Ġ{ ĊĊĠĠĠĠĠĠĠ Ġstroke Ġ= ĠColor . RED ĊĠĠĠĠĠĠĠ ĠstrokeWidth Ġ= Ġ 1 . 0 ĊĠĠĠĠĠĠĠ Ġthis ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġobject Ġ: ĠArea Shape ( this , Ġcir Shape ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġmove ( x : ĠInt , Ġy : ĠInt ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea Ġas ĠCircle ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea . x Center Ġ= Ġx Ġ+ Ġradius ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarea . y Center Ġ= Ġy Ġ+ Ġradius ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }