Реализуем функцию расчета угла прицеливания.

На днях мой знакомый прислал мне на почту задачу и файлы проекта, попросив разобраться как можно решить задание с какого интернет проекта. Текст задания был следующий:

  1. Скачайте архив с проектом AngryBirds и изучите его. Это простой симулятор системы прицеливания.
  2. В файле AngryBirdsTask реализуйте функцию расчета угла прицеливания, в зависимости от начальной скорости снаряда и дальности до цели.
  3. Проверьте корректность своего решения, запустив проект.

Детали:

  1. Сопротивлением воздуха можно пренебречь
  2. Ускорение свободного падения g = 9.8 м/с2

Исходя из задания, я понял что придется вспоминать формулы из физики. А именно интересует нахождения расстояния полета тела, брошенного под углом. В первой тройке сайтов я определился с формулой нахождения.  И решил дописать фаил прилагавшийся в письме. Из всего этого изменил метод и результат был верный. Рассмотрим сам метод:

 

Обновлено: 22.12.2017 — 22:20

3 комментария

Оставить комментарий
  1. Константин

    Добрый день, не мог бы рассказать почему именно так? Как получить то что получил ты из формулы 2sin’a * cos’a = distanse * g / v^2?

    1. По памяти так не скажу, банально не помню, формула была взята из анг ресурсов, кода мне требовалась его реализация.

  2. Расстояние до точки падения вычисляется по след. формуле: distance = (v0^2 * sin(2a))/g, нам нужна градусная мера угла «a», тут то и пригодится arcsin т.к : если sin(a) = t, тогда arcsin(t) = a, следовательно : если sin(2a) = (distance * g) / v0^2, тогда arcsin((distance * g) / v0^2) = 2a, из этого следует что, a = (arcsin((distance * g) / v0^2)) / 2. Как-то так…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.