Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const val THRESHOLD = 0.0001
- // вспомогательные классы для точки и вектора
- class Point(
- val x: Int,
- val y: Int
- )
- class Vector(
- val begin: Point,
- val end: Point
- ) {
- val x: Int
- get() = end.x - begin.x
- val y: Int
- get() = end.y - begin.y
- val length = Math.sqrt(((begin.x - end.x) * (begin.x - end.x) + (begin.y - end.y) * (begin.y - end.y)).toDouble())
- }
- fun main(args: Array<String>) {
- val A = Point(5, 7)
- val B = Point(9, 11)
- val R = 2
- val a = Vector(B, A)
- val ratio = R / a.length
- // это твоё решение
- val xc = B.x + a.x * ratio
- val yc = B.y + a.y * ratio
- // это просто что бы проверить что найденная точка принадлежит окружности
- val eps = R * R - ((xc - B.x) * (xc - B.x) + (yc - B.y) * (yc - B.y))
- println("x = $xc")
- println("y = $yc")
- println("test " + if (eps < THRESHOLD) "passed " else "failed")
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement