Я пытаюсь сделать некоторые основные тригонометрии с Java и LibGDX на Android.
Я долго гуглил "Как найти угол в прямоугольных треугольниках".
Я до сих пор не очень понимаю: (
Я хочу дать подклассу Actor случайное направление для подражания. Так что же такое угол - и что я должен установить xSpeed и ySpeed, чтобы двигаться под правильным углом.
Я начал писать приложение, чтобы понять, как оно работает.
Есть два объекта - исходная точка и точка касания. Пользователь нажимает на экран, TouchPoint перемещается туда, где пользователь коснулся. Методы стрельбы, чтобы выяснить соответствующие значения. Я знаю XDistance и YDistance между двумя точками. Это означает, что я знаю противоположную длину и соседнюю длину. Так что все, что мне нужно сделать, это загар-1 (противоположный / соседний), я прав?
Я просто не понимаю, что делать с числами, которые выдает моя программа.
Код:
В событии создания основного класса:
stage.addListener(new ClickListener() {
@Override
public void touchDragged(InputEvent event, float x, float y, int pointer) {
touchPoint.setX(x);
touchPoint.setY(y);
touchPoint.checkDistance(); // saves x and y distances from origin in private fields
atan2D = getAtan2(touchPoint.getYDistance(), touchPoint.getXDistance());
tanhD = getTanh(touchPoint.getYDistance(), touchPoint.getXDistance());
xDistanceLbl.setText("X Distance: " + touchPoint.getXDistance());
yDistanceLbl.setText("Y Distance: " + touchPoint.getYDistance());
atan2Lbl.setText("Atan2: " + atan2D);
tanhLbl.setText("Tanh: " + tanhD);
angleLbl.setText("Angle: No idea");
}
})
...
private double getAtan2(float adjacent, float opposite) {
return Math.atan2(adjacent, opposite);
}
private double getTanh(float adjacent, float opposite) {
return Math.tanh((adjacent / opposite));
}
Эти две функции дают мне числа от (atan2: -pi до pi) и (tanh: от -1,0 до 1,0)
Как я могу превратить эти значения в углы, из которых я могу затем работать в обратном направлении и снова получать противоположные и смежные?
Это должно позволить мне создавать объекты со случайным направлением, которые я могу использовать в 2D играх.