1 / 1 / 0
Регистрация: 17.11.2012
Сообщений: 27
|
|||||||||||
1 | |||||||||||
Касаются ли окружности в одной точке?31.05.2013, 21:42. Показов 6950. Ответов 10
Метки нет (Все метки)
0
|
31.05.2013, 21:42 | |
Ответы с готовыми решениями:
10
Создать в классе Circle метод, проверяющий, касаются ли окружности в одной точке Отношения квадрата и окружности с центром в одной точке Определить лежат ли точки на одной окружности с центром в точке О Окружности касаются внешним образом |
6 / 6 / 3
Регистрация: 21.04.2013
Сообщений: 19
|
|||||||||||
01.06.2013, 01:38 | 2 | ||||||||||
Касание должно быть только в одной? У меня код выдал false, хотя должен был бы - true.
Вот так работает, если только 1 точка:
0
|
23 / 23 / 7
Регистрация: 21.04.2013
Сообщений: 52
|
|
01.06.2013, 08:19 | 3 |
это условие просто неверно (c.x*c.x+c.y*c.y-c.r*c.r==this.x*this.x+this.y*this.y-this.r*this.r). уравнение окружности х*х + у*у - г*г = 0. и если бы окружности задавались именно уравнениями, то сравнение было бы эквивалентно 0 == 0, что всегда тру.
в примере выше разве что в строке double length = Math.sqrt((this.x - c.x) *... можно не брать модуль )
0
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
01.06.2013, 16:00 | 4 |
2Бородатый Админ:
Вы неверно решили задачу прежде всего математически. Еще раз запишите на бумаге уравнение окружностей, решите его аналитически ... а потом программируйте ...
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
03.06.2013, 10:26 | 5 |
А когда будете реализовывать, не забудьте, что вычисления в Java происходят с определенной точностью, в результате чего сравнение через == будет выдавать неправильные результаты. Сравнивать надо через оценку разницы по модулю.
0
|
03.06.2013, 11:43 | 6 |
В задаче не сказано, но судя по всему, это происходит на плоскости.
Тогда расстояние между центрами окружностей dist = √[(x2 – x1)2 + (y2 – y1)2] Если | r2 + r1 – dist | < ε ИЛИ | | r2 – r1 | – dist | < ε тогда окружности касаются в одной точке. Вроде так. Зачем тут уравнения окружностей - не ясно.
0
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
03.06.2013, 13:15 | 7 |
2Gibby:
Смотрите, там речь идет о решении задачи о ПЕРЕСЕЧЕНИЯ ... а математически - это оперирование именно системой уравнений ф-й .... смысл ковырять расстояние между центрами ?
0
|
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
|
|
03.06.2013, 13:42 | 8 |
Смысл геометрический. Если расстояние равно сумме радиусов - пересекаются в одной точке. Если больше - не пересекаются. Если меньше: если расстояние равно разнице радиусов, то касается в одной точке изнутри. Если меньше - не касаются, окружности вложены. Если больше - два пересечения.
2
|
91 / 91 / 10
Регистрация: 18.05.2013
Сообщений: 265
|
|
03.06.2013, 16:38 | 10 |
Таки да, виноват, излишне абстрагировался от задачи ....
0
|
03.06.2013, 17:29 | 11 |
Overengineering это не только в программировании проблема
0
|
03.06.2013, 17:29 | |
03.06.2013, 17:29 | |
Помогаю со студенческими работами здесь
11
Две окружности касаются внутренним образом Определить, пересекаются ли окружности, касаются друг друга или не имеют общих точек Нарисовать 100 прямых линий, имеющих общее начало в одной точке и конец в случайной точке экрана Постройте две окружности, имитируя движение одной окружности по другой Написать программу, проверяющую, пересекаются ли окружность и прямая, или они касаются друг друга, или не пересекаются и не касаются Нужно сделать одной командой несколько окружностей находящихся в одной окружности Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |