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, 08:44
Спасибо. Читая Ваш ответ отчетливо понял что оси это катеты.
vampirit
Уровень 40
14 июня 2017, 02:09
1. Какой математический принцип(То что используется теорема Пифагора я и сам вижу, как она позволяет сделать вывод о дистанции между точками на плоскости?) используется в данном коде и почему мы считаем что код верно определит пересекались ли объекты.

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