Вычислить градус поворота View элемента

91
21 января 2022, 18:20

На заднем фоне View элемент напоминающий треугольник. Синим показан элемент который нужно развернуть вдоль гипотенузы. Подскажите, как можно вычислить значение для параметра rotation View элемента Android.

Ширина синего элемента math_parent.

Начал делать так:

 triangle.post(()->{
            double hypotenuse = Math.sqrt(Math.pow(triangle.getHeight(), 2) + Math.pow(triangle.getWidth(), 2));
            double angleA = Math.sin((double) triangle.getHeight() / (double) triangle.getWidth());
            double angleA_1 = Math.atan((double) triangle.getHeight() / (double) triangle.getWidth());
            double angleB = 180D - 90D - angleA;
            Log.d("myTag", "Гипотинуза " + hypotenuse + "\nWidth: " + triangle.getWidth() + "\nangleA: " + angleA + "\nangleB " + angleB);
        });

OUT:

Гипотинуза 729.9315036357864

Width: 720

angleA: 0.16589613269341502

angleA_1 0.16514867741462683

angleB 89.83410386730658

Вроде вычисления выше правильные, но что делать дальше не соображу..

Answer 1
  1. Вы посчитали синус угла по формуле для тангенса угла
  2. Угол и синус угла это разные вещи. Чтобы из тангенса получить угол нужен арктангенс.

Полагаю у вас начальное состояние примерно как на рисунке ниже:

Тогда:

double AngleA=Math.atan((double) triangle.getHeight() / (double) triangle.getWidth());

Обратите внимание на то, что сразу получен угол в радианах, который принимает на вход rotate.

Если нужно в градусах, то можно сделать так как подсказывают в комментарии

float rotate = (float) Math.toDegrees(Math.atan((double) triangle.getHeight() / (double) triangle.getWidth()));
view.setRotation(-rotate);
READ ALSO
вывод double без округления

вывод double без округления

Это приложение - простой калькулятор, мне нужно при делении задать TextView результат, и так чтобы это было без округления, в моём случае округление...

191
IntelliJ IDEA 2019.2 x64. Ошибка при попытке запуска кода на Java

IntelliJ IDEA 2019.2 x64. Ошибка при попытке запуска кода на Java

Создал новый проект на базе JavaFXЗапускаю автоматически сгенерированный код, ничего не менял

106
Получение данных из application.properties

Получение данных из application.properties

Пишу небольшое приложение по работе, и надо создать класс для использования его в RestController Но дело в том, что я никак не могу получить данные...

298
Расположение файлов в Maven проекте

Расположение файлов в Maven проекте

В Maven-проект необходимо добавить txt файл, из которого программа будет считывать данныеГде мне следует его хранить: в src/main/resources или создать...

145