package Ġnet . fw itz . math . plot . binary . complex . color Ċ Ċ import Ġnet . fw itz . math . binary . complex . Complex Ċ import Ġjava . awt . Color Ċ import Ġkotlin . math . floor Ċ import Ġkotlin . math . ln Ċ Ċ object ĠDomain Color ing Smooth Ġ: ĠComplex Color Function Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠTWO _ PI Ġ= ĠMath . PI Ġ* Ġ 2 . 0 ĊĊĠĠĠ Ġprivate Ġfun Ġhue ( arg : ĠDouble ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhue Ġ= Ġarg Ġ/ ĠTWO _ PI ĊĠĠĠĠĠĠĠ Ġreturn Ġ( hue Ġ- Ġfloor ( hue )). toFloat () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog Scale ( z : ĠComplex ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġln ( z . abs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġm antis sa ( x : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġx Ġ- Ġfloor ( x ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġbrightness ( hue : ĠFloat , Ġk : ĠDouble ): ĠFloat Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġm antis sa (( 6 Ġ* Ġhue ). toDouble ()) ĊĠĠĠĠĠĠĠ Ġx Ġ*= Ġ 1 Ġ- Ġx ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġ< Ġ 0 . 0 2 Ġ-> Ġ( 0 . 2 Ġ+ Ġ 0 . 7 Ġ* Ġm antis sa ( k )). toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ( 0 . 3 Ġ+ Ġ 0 . 7 Ġ* Ġm antis sa ( k )). toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinvoke ( c : ĠComplex , Ġz : ĠComplex ): ĠColor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarg : ĠDouble Ġ= Ġz . arg ĊĠĠĠĠĠĠĠ Ġval Ġk Ġ= Ġlog Scale ( z ) ĊĠĠĠĠĠĠĠ Ġval Ġhue Ġ= Ġhue ( arg ) ĊĠĠĠĠĠĠĠ Ġval Ġb rt Ġ= Ġbrightness ( hue , Ġk ) ĊĠĠĠĠĠĠĠ Ġreturn ĠColor . get H SB Color ( hue , Ġ 1 . 0 f , Ġb rt ) ĊĠĠĠ Ġ} Ċ }