package Ġir . fe are full . knowledge extraction app . graph . core . bean Ċ Ċ import Ġandroid . graphics .* Ċ Ċ object ĠArc Utils Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġhttps :// www . t br ay . org / ongo ing / When / 2 0 0 x / 2 0 0 9 / 0 1 / 0 2 / Android - Draw - a - Cur ved - Line ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠDraw Ġarc . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġe 1 ĠĠĠĠĠĠĠ Ġthe Ġe Ġ 1 ĊĠĠĠĠ Ġ* Ġ@ param Ġe 2 ĠĠĠĠĠĠĠ Ġthe Ġe Ġ 2 ĊĠĠĠĠ Ġ* Ġ@ param Ġradius ĠĠĠ Ġthe Ġradius ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas ĠĠĠ Ġthe Ġcanvas ĊĠĠĠĠ Ġ* Ġ@ param Ġpaint ĠĠĠĠ Ġthe Ġpaint ĊĠĠĠĠ Ġ* Ġ@ param Ġtext Paint Ġthe Ġtext Ġpaint ĊĠĠĠĠ Ġ* Ġ@ param Ġvalue ĠĠĠĠ Ġthe Ġvalue ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdraw Arc ( ĊĠĠĠĠĠĠĠ Ġe 1 : ĠPoint F , Ġe 2 : ĠPoint F , Ġradius : ĠFloat , Ġcanvas : ĠCanvas , Ġpaint : ĠPaint , ĊĠĠĠĠĠĠĠ Ġtext Paint : ĠPaint , Ġstroke : ĠLong , Ġvalue : ĠString ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġa 1 Ġ= ĠMath . to Radians (( radius Ġ+ Ġ 5 ). toDouble ()) ĊĠĠĠĠĠĠĠ Ġ// Ġl 1 Ġis Ġhalf Ġthe Ġlength Ġof Ġthe Ġline Ġfrom Ġe 1 Ġto Ġe 2 ĊĠĠĠĠĠĠĠ Ġval Ġdx Ġ= Ġ( e 2 . x Ġ- Ġe 1 . x ). toDouble () ĊĠĠĠĠĠĠĠ Ġval Ġdy Ġ= Ġ( e 2 . y Ġ- Ġe 1 . y ). toDouble () ĊĠĠĠĠĠĠĠ Ġval Ġl Ġ= ĠMath . sqrt ( dx Ġ* Ġdx Ġ+ Ġdy Ġ* Ġdy ) ĊĠĠĠĠĠĠĠ Ġval Ġl 1 Ġ= Ġl Ġ/ Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġ// Ġh Ġis Ġlength Ġof Ġthe Ġline Ġfrom Ġthe Ġmiddle Ġof Ġthe Ġconnecting Ġline Ġto Ġthe Ġcenter Ġof Ġthe Ġcircle . ĊĠĠĠĠĠĠĠ Ġval Ġh Ġ= Ġl 1 Ġ/ ĠMath . tan ( a 1 Ġ/ Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġr Ġis Ġthe Ġradius Ġof Ġthe Ġcircle ĊĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġl 1 Ġ/ ĠMath . sin ( a 1 Ġ/ Ġ 2 . 0 ) ĊĠĠĠĠĠĠĠ Ġ// Ġa 2 Ġis Ġthe Ġangle Ġat Ġwhich ĠL Ġintersect s Ġthe Ġx Ġaxis ĊĠĠĠĠĠĠĠ Ġval Ġa 2 Ġ= ĠMath . atan 2 ( dy , Ġdx ) ĊĠĠĠĠĠĠĠ Ġ// Ġa 3 Ġis Ġthe Ġangle Ġat Ġwhich ĠH Ġintersect s Ġthe Ġx Ġaxis ĊĠĠĠĠĠĠĠ Ġval Ġa 3 Ġ= ĠMath . PI Ġ/ Ġ 2 . 0 Ġ- Ġa 2 ĊĠĠĠĠĠĠĠ Ġ// Ġm Ġis Ġthe Ġmid point Ġof Ġthe Ġline Ġfrom Ġe 1 Ġto Ġe 2 ĊĠĠĠĠĠĠĠ Ġval Ġm X Ġ= Ġ( e 1 . x Ġ+ Ġe 2 . x ) Ġ/ Ġ 2 . 0 ĊĠĠĠĠĠĠĠ Ġval Ġm Y Ġ= Ġ( e 1 . y Ġ+ Ġe 2 . y ) Ġ/ Ġ 2 . 0 ĊĊĠĠĠĠĠĠĠ Ġ// Ġc Ġis Ġthe Ġthe Ġcenter Ġof Ġthe Ġcircle ĊĠĠĠĠĠĠĠ Ġval Ġc Y Ġ= Ġm Y Ġ+ Ġh Ġ* ĠMath . sin ( a 3 ) ĊĠĠĠĠĠĠĠ Ġval Ġc X Ġ= Ġm X Ġ- Ġh Ġ* ĠMath . cos ( a 3 ) ĊĠĠĠĠĠĠĠ Ġ// Ġrect Ġis Ġthe Ġsquare ĠRect F Ġthat Ġbounds Ġthe Ġ" oval " ĊĠĠĠĠĠĠĠ Ġval Ġo val Ġ= ĠRect F (( c X Ġ- Ġr ). toFloat (), Ġ( c Y Ġ- Ġr ). toFloat (), Ġ( c X Ġ+ Ġr ). toFloat (), Ġ( c Y Ġ+ Ġr ). toFloat ()) ĊĊĠĠĠĠĠĠĠ Ġ// Ġa 4 Ġis Ġthe Ġstarting Ġsweep Ġangle ĊĠĠĠĠĠĠĠ Ġval Ġraw A 4 Ġ= ĠMath . atan 2 ( e 1 . y Ġ- Ġc Y , Ġe 1 . x Ġ- Ġc X ) ĊĠĠĠĠĠĠĠ Ġval Ġa 4 Ġ= ĠMath . to Degrees ( raw A 4 ). toFloat () ĊĠĠĠĠĠĠĠ Ġpaint . stroke Width Ġ= Ġstroke . toFloat () ĊĠĠĠĠĠĠĠ Ġdraw Arrow ( e 2 . x , Ġe 2 . y , Ġa 4 Ġ+ Ġradius Ġ+ Ġ 4 5 f , Ġpaint , Ġcanvas ) ĊĠĠĠĠĠĠĠ Ġcanvas . draw Arc ( oval , Ġa 4 , Ġradius , Ġfalse , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġval Ġdelt ay Ġ= Ġ- Math . sin ( a 3 ) Ġ* Ġ( r Ġ- Ġh ) ĊĠĠĠĠĠĠĠ Ġval Ġdelt ax Ġ= ĠMath . cos ( a 3 ) Ġ* Ġ( r Ġ- Ġh ) ĊĊĠĠĠĠĠĠĠ Ġcanvas . draw Text ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue , Ġ( m X Ġ+ Ġdelt ax ). toFloat (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( m Y Ġ+ Ġdelt ay ). toFloat () Ġ+ Ġ 1 0 , Ġtext Paint ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDraw Ġarrow . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġx ĠĠĠĠĠĠ Ġthe Ġx ĊĠĠĠĠ Ġ* Ġ@ param Ġy ĠĠĠĠĠĠ Ġthe Ġy ĊĠĠĠĠ Ġ* Ġ@ param Ġdegrees Ġthe Ġdegrees ĊĠĠĠĠ Ġ* Ġ@ param Ġpaint ĠĠ Ġthe Ġpaint ĊĠĠĠĠ Ġ* Ġ@ param Ġcanvas Ġ Ġthe Ġcanvas ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġdraw Arrow ( x : ĠFloat , Ġy : ĠFloat , Ġdegrees : ĠFloat , Ġpaint : ĠPaint , Ġcanvas : ĠCanvas ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcanvas . save () ĊĠĠĠĠĠĠĠ Ġcanvas . rotate ( degrees , Ġx , Ġy ) ĊĠĠĠĠĠĠĠ Ġval Ġpath Ġ= ĠPath () ĊĠĠĠĠĠĠĠ Ġpath . fill Type Ġ= ĠPath . Fill Type . E VEN _ O DD ĊĠĠĠĠĠĠĠ Ġpath . moveTo ( x Ġ- Ġ 4 0 f , Ġy Ġ- Ġ 4 0 f ) ĊĠĠĠĠĠĠĠ Ġpath . lineTo ( x Ġ- Ġ 6 0 f , Ġy Ġ- Ġ 4 0 f ) ĊĠĠĠĠĠĠĠ Ġpath . lineTo ( x Ġ- Ġ 4 0 f , Ġy Ġ- Ġ 6 0 f ) ĊĠĠĠĠĠĠĠ Ġpath . lineTo ( x Ġ- Ġ 4 0 f , Ġy Ġ- Ġ 4 0 f ) ĊĠĠĠĠĠĠĠ Ġpath . close () ĊĠĠĠĠĠĠĠ Ġcanvas . draw Path ( path , Ġpaint ) ĊĠĠĠĠĠĠĠ Ġcanvas . restore () ĊĠĠĠĠĠĠĠ Ġpaint . style Ġ= ĠPaint . Style . ST RO KE ĊĠĠĠ Ġ} Ċ } Ċ /** Ċ Ġ* ĠInstanti ates Ġa Ġnew ĠArc Ġutils . Ċ Ġ*/ Ċ