Advertisement
Guest User

Untitled

a guest
Jan 14th, 2019
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.05 KB | None | 0 0
  1.  
  2. const val THRESHOLD = 0.0001
  3.  
  4. // вспомогательные классы для точки и вектора
  5.  
  6. class Point(
  7.     val x: Int,
  8.     val y: Int
  9. )
  10.  
  11. class Vector(
  12.     val begin: Point,
  13.     val end: Point
  14. ) {
  15.  
  16.     val x: Int
  17.         get() = end.x - begin.x
  18.  
  19.     val y: Int
  20.         get() = end.y - begin.y
  21.  
  22.     val length = Math.sqrt(((begin.x - end.x) * (begin.x - end.x) + (begin.y - end.y) * (begin.y - end.y)).toDouble())
  23. }
  24.  
  25.  
  26. fun main(args: Array<String>) {
  27.  
  28.     val A = Point(5, 7)
  29.     val B = Point(9, 11)
  30.  
  31.     val R = 2
  32.  
  33.     val a = Vector(B, A)
  34.  
  35.     val ratio = R / a.length
  36.  
  37.     // это твоё решение
  38.     val xc = B.x + a.x * ratio
  39.     val yc = B.y + a.y * ratio
  40.    
  41.     // это просто что бы проверить что найденная точка принадлежит окружности
  42.     val eps = R * R - ((xc - B.x) * (xc - B.x) + (yc - B.y) * (yc - B.y))
  43.  
  44.     println("x = $xc")
  45.     println("y = $yc")
  46.     println("test " + if (eps < THRESHOLD) "passed " else "failed")
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement