import Ġkotlinx . browser . document Ċ import Ġorg . w 3 c . dom . Canvas Rendering Context 2 D Ċ import Ġorg . w 3 c . dom . HTML Canvas Element Ċ import Ġkotlinx . browser . window Ċ Ċ import Ġkotlin . math . PI Ċ import Ġkotlin . math . cos Ċ import Ġkotlin . math . sin Ċ Ċ // import Ġkotlinx . html . js . canvas Ċ Ċ enum Ġclass ĠPlan et Ġ{ ĊĠĠĠ ĠMER CUR Y , ĊĠĠĠ ĠV EN US , ĊĠĠĠ ĠE AR TH , ĊĠĠĠ ĠM ARS , ĊĠĠĠ ĠJ UP ITER , ĊĠĠĠ ĠS AT URN , ĊĠĠĠ ĠU RAN US , ĊĠĠĠ ĠNE PT UNE , ĊĠĠĠ ĠPL UTO Ċ } Ċ Ċ fun Ġyear Of Planet ( planet : ĠPlan et ) Ġ= ĊĠĠĠ Ġwhen ( planet ){ ĊĠĠĠĠĠĠĠ ĠPlan et . MER CUR Y Ġ-> Ġ 8 7 . 9 6 9 ĊĠĠĠĠĠĠĠ ĠPlan et . VEN US Ġ-> Ġ 2 2 4 . 7 0 1 ĊĠĠĠĠĠĠĠ ĠPlan et . EAR TH Ġ-> Ġ 3 6 5 . 2 5 6 ĊĠĠĠĠĠĠĠ ĠPlan et . MAR S Ġ-> Ġ 6 8 6 . 9 8 0 ĊĠĠĠĠĠĠĠ ĠPlan et . J UP ITER Ġ-> Ġ 4 3 3 2 . 6 ĊĠĠĠĠĠĠĠ ĠPlan et . SAT URN Ġ-> Ġ 1 0 7 5 9 . 2 ĊĠĠĠĠĠĠĠ ĠPlan et . UR AN US Ġ-> Ġ 3 0 6 8 5 . 0 ĊĠĠĠĠĠĠĠ ĠPlan et . NE PT UNE Ġ-> Ġ 6 0 1 9 0 . 0 ĊĠĠĠĠĠĠĠ ĠPlan et . PL UTO Ġ-> Ġ 9 0 4 6 5 . 0 ĊĠĠĠ Ġ} ĊĊ Ċ fun Ġorbit Of Planet ( planet : ĠPlan et ) Ġ= ĊĠĠĠ Ġwhen ( planet ){ ĊĠĠĠĠĠĠĠ ĠPlan et . MER CUR Y Ġ-> Ġ 5 7 . 9 1 ĊĠĠĠĠĠĠĠ ĠPlan et . VEN US Ġ-> Ġ 1 0 8 . 2 1 ĊĠĠĠĠĠĠĠ ĠPlan et . EAR TH Ġ-> Ġ 1 4 9 . 6 0 ĊĠĠĠĠĠĠĠ ĠPlan et . MAR S Ġ-> Ġ 2 2 7 . 9 2 ĊĠĠĠĠĠĠĠ ĠPlan et . J UP ITER Ġ-> Ġ 7 7 8 . 5 7 ĊĠĠĠĠĠĠĠ ĠPlan et . SAT URN Ġ-> Ġ 1 4 3 3 . 5 ĊĠĠĠĠĠĠĠ ĠPlan et . UR AN US Ġ-> Ġ 2 8 7 2 . 4 6 ĊĠĠĠĠĠĠĠ ĠPlan et . NE PT UNE Ġ-> Ġ 4 4 9 5 . 1 ĊĠĠĠĠĠĠĠ ĠPlan et . PL UTO Ġ-> Ġ 5 8 6 9 . 7 ĊĠĠĠ Ġ} ĊĊ Ċ fun Ġname Of Planet ( planet : ĠPlan et ) Ġ= ĊĠĠĠ Ġwhen ( planet ){ ĊĠĠĠĠĠĠĠ ĠPlan et . MER CUR Y Ġ-> Ġ" Mer cury " ĊĠĠĠĠĠĠĠ ĠPlan et . VEN US Ġ-> Ġ" Ven us " ĊĠĠĠĠĠĠĠ ĠPlan et . EAR TH Ġ-> Ġ" Earth " ĊĠĠĠĠĠĠĠ ĠPlan et . MAR S Ġ-> Ġ" M ars " ĊĠĠĠĠĠĠĠ ĠPlan et . J UP ITER Ġ-> Ġ" J upiter " ĊĠĠĠĠĠĠĠ ĠPlan et . SAT URN Ġ-> Ġ" Sat urn " ĊĠĠĠĠĠĠĠ ĠPlan et . UR AN US Ġ-> Ġ" U ran us " ĊĠĠĠĠĠĠĠ ĠPlan et . NE PT UNE Ġ-> Ġ" Ne pt une " ĊĠĠĠĠĠĠĠ ĠPlan et . PL UTO Ġ-> Ġ" Pl uto " ĊĠĠĠ Ġ} Ċ Ċ // Ġcanvas Ġwidth , Ġheight Ċ const Ġval ĠCAN V AS _ LEN Ġ= Ġ 4 0 0 . 0 Ċ Ċ fun Ġdraw Line ( c : ĠCanvas Rendering Context 2 D , Ġfrom X : ĠDouble , Ġfrom Y : ĠDouble , Ġto X : ĠDouble , Ġto Y : ĠDouble , Ġcolor : ĠString ){ ĊĠĠĠ Ġcolor . also Ġ{ Ġc . fillStyle Ġ= Ġit Ġ} ĊĠĠĠ Ġcolor . also Ġ{ Ġc . stroke Style Ġ= Ġit Ġ} ĊĠĠĠ Ġc . beginPath () ĊĠĠĠ Ġc . moveTo ( from X , Ġfrom Y ) ĊĠĠĠ Ġc . lineTo ( to X , Ġto Y ) ĊĠĠĠ Ġc . stroke () Ċ } Ċ Ċ fun Ġd ance ( canvas : ĠHTML Canvas Element , Ġouter Planet : ĠPlan et , Ġinner Planet : ĠPlan et , Ġorbit : ĠDouble ) Ġ{ ĊĠĠĠ Ġval Ġc Ġ= Ġcanvas . getContext (" 2 d ") Ġas ĠCanvas Rendering Context 2 D ĊĠĠĠ Ġval Ġouter Planet Year Ġ= Ġyear Of Planet ( outer Planet ) ĊĠĠĠ Ġval Ġinner Planet Year Ġ= Ġyear Of Planet ( inner Planet ) ĊĠĠĠ Ġval Ġouter Planet Radius Ġ= Ġorbit Of Planet ( outer Planet ) ĊĠĠĠ Ġval Ġinner Planet Radius Ġ= Ġorbit Of Planet ( inner Planet ) ĊĠĠĠ Ġval Ġinterval Days Ġ= Ġouter Planet Year Ġ/ Ġ 7 5 . 0 ĊĠĠĠ Ġval Ġx center Ġ= ĠCAN V AS _ LEN Ġ/ Ġ 2 . 0 ĊĠĠĠ Ġval Ġy center Ġ= ĠCAN V AS _ LEN Ġ/ Ġ 2 . 0 ĊĠĠĠ Ġval Ġr 1 Ġ= Ġy center ĊĠĠĠ Ġval Ġr 2 Ġ= Ġr 1 Ġ* Ġinner Planet Radius Ġ/ Ġouter Planet Radius ĊĠĠĠ Ġvar Ġr Ġ= Ġ 0 . 0 ĊĠĠĠ Ġval Ġr stop Ġ= Ġouter Planet Year Ġ* Ġorbit ĊĠĠĠ Ġvar Ġa 1 Ġ= Ġ 0 . 0 ĊĠĠĠ Ġval Ġa 1 Interval Ġ= Ġ 2 . 0 Ġ* ĠPI Ġ* Ġinterval Days Ġ/ Ġouter Planet Year ĊĠĠĠ Ġvar Ġa 2 Ġ= Ġ 0 . 0 ĊĠĠĠ Ġval Ġa 2 Interval Ġ= Ġ 2 . 0 Ġ* ĠPI Ġ* Ġinterval Days Ġ/ Ġinner Planet Year ĊĠĠĠ Ġval Ġouter Planet Name Ġ= Ġname Of Planet ( outer Planet ) ĊĠĠĠ Ġval Ġinner Planet Name Ġ= Ġname Of Planet ( inner Planet ) ĊĠĠĠ Ġval Ġorbit Text Ġ= Ġ"${ orbit } Ġor bits " ĊĠĠĠ Ġc . fillStyle Ġ= Ġ" blue " ĊĠĠĠ Ġc . font Ġ= Ġ" 1 2 pt ĠOs aka " ĊĠĠĠ Ġc . fill Text ( outer Planet Name , Ġ 1 0 . 0 , Ġ 2 5 . 0 ) ĊĠĠĠ Ġc . fill Text ( inner Planet Name , Ġ 1 0 . 0 , Ġ 4 5 . 0 ) ĊĠĠĠ Ġc . fill Text ( orbit Text , Ġ 1 0 . 0 , ĠCAN V AS _ LEN - 2 0 . 0 ) ĊĠĠĠĠĊĠĠĠ Ġwhile ( r Ġ< Ġr stop ){ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġ( r Ġ/ Ġinterval Days Ġ/ Ġ 7 5 . 0 ). toInt () ĊĠĠĠĠĠĠĠ Ġconsole . log ( i ) ĊĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġwhen ( i ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ" black " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ" blue " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ" red " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ" green " ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ"# 8 0 0 0 8 0 " Ġ// purple ĊĠĠĠĠĠĠĠĠĠĠĠĠ 5 Ġ-> Ġ"# 8 0 0 0 0 0 " Ġ// mar oon ĊĠĠĠĠĠĠĠĠĠĠĠĠ 6 Ġ-> Ġ"# 8 B 0 0 0 0 " Ġ Ġ// nav y ĊĠĠĠĠĠĠĠĠĠĠĠĠ 7 Ġ-> Ġ"# 8 B 0 0 0 0 " Ġ// dark Ġred ĊĠĠĠĠĠĠĠĠĠĠĠĠ 8 Ġ-> Ġ"# FF A 5 0 0 " Ġ// orange ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" a qua " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġa 1 Ġ-= Ġa 1 Interval ĊĠĠĠĠĠĠĠ Ġa 2 Ġ-= Ġa 2 Interval ĊĠĠĠĠĠĠĠ Ġval Ġx 1 Ġ= Ġr 1 Ġ* Ġcos ( a 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġy 1 Ġ= Ġr 1 Ġ* Ġsin ( a 1 ) ĊĠĠĠĠĠĠĠ Ġval Ġx 2 Ġ= Ġr 2 Ġ* Ġcos ( a 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġy 2 Ġ= Ġr 2 Ġ* Ġsin ( a 2 ) ĊĊĠĠĠĠĠĠĠ Ġdraw Line ( c , Ġx 1 Ġ+ Ġx center , Ġy 1 Ġ+ Ġy center , Ġx 2 Ġ+ Ġx center , Ġy 2 Ġ+ Ġy center , Ġcolor ) ĊĠĠĠĠĠĠĠ Ġr Ġ+= Ġinterval Days ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġmain () Ġ{ ĊĠĠĠ Ġwindow . onload Ġ= Ġ{ ĊĠĠĠĠĠĠĠ Ġd ance ( document . getElementById (" target ") Ġas ĠHTML Canvas Element , ĠPlan et . EAR TH , ĠPlan et . VEN US , Ġ 8 . 0 ) ĊĠĠĠ Ġ} Ċ } Ċ