JavaRush /Java блог /Архив info.javarush /Прошу объяснить какой закон математики здесь работает.
3des
26 уровень

Прошу объяснить какой закон математики здесь работает.

Статья из группы Архив info.javarush
Уважаемые друзья, в одной из задач приведенным ниже кодом мы определяем пересеклись ли траектории объектов, вод выдержка из условия: А еще нам нужно будет определять попал шарик в кирпич или в подставку. Это будем делать так: В этом же классе, создадим специальный метод: boolean isIntersec(BaseObject o) Он будет определять — «пересеклись» объекты или нет. Если пересеклись — возвращать true, если нет — false. Т.к. объекты мы условно считаем кругами, то предлагаю такую формулу взаимодействия Если центр круга одного объекта попал в круг другого, то будем считать, что они столкнулись. Или еще проще: дистанция_между_объектами <= max (радиус_первого_объекта, радиус_второго_объекта) код: public boolean isIntersec(BaseObject o){ double xDistance = this.getX() - o.getX(); double yDistance = this.getY() - o.getY(); double distance = Math.sqrt((xDistance*xDistance)+(yDistance*yDistance)); return distance < Math.max(this.getRadius(), o.getRadius()) ; } 1. Какой математический принцип(То что используется теорема Пифагора я и сам вижу, как она позволяет сделать вывод о дистанции между точками на плоскости?) используется в данном коде и почему мы считаем что код верно определит пересекались ли объекты. 2. Почему в данной задаче, как и в предыдущих, при наличии геттеров и сеттеров, валидатор пропускает только когда обращаешся непосредственно к переменным, как правильно все же? А главное почему?
Комментарии (2)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
3des Уровень 26
14 июня 2017
Спасибо. Читая Ваш ответ отчетливо понял что оси это катеты.
vampirit Уровень 40
14 июня 2017
1. Какой математический принцип(То что используется теорема Пифагора я и сам вижу, как она позволяет сделать вывод о дистанции между точками на плоскости?) используется в данном коде и почему мы считаем что код верно определит пересекались ли объекты.

расстояние между объектами — прямая линия (гепотинуза)
нам надо её найти и Пифагор нам в помощь.
Нашли, теперь если гипотенуза меньше чем радиус большего объекта (т.е. центра одного объекта внутри другого), значит они пересеклись.
Идеально тут было бы считать сумму радиусов