Я использую Java и slick2D.

Ссылка на класс: Line находится по адресу: org.newdawn.slick.geom.Line

Мой вопрос в том, как я могу узнать, сколько градусов составляет угол между двумя линиями.

Примере:

Line ln1 = new Line(0,1,0,3);
Line ln2 = new Line(1,0,3,0);

Углы, которые составляют ln1 и ​​ln2, составляют: 90,90 градусов - две прямые перпендикулярны.

Надеюсь, вы могли бы мне помочь: D

0
user2377766 13 Май 2013 в 17:17
Пожалуйста, объясните "заключение"?
 – 
peter.murray.rust
13 Май 2013 в 17:20
Предполагая, что конструктор имеет форму Line(x1, y1, x2, y2) и представляет отрезок прямой между точками (x1,y1) и (x2,y2), в вашем примере есть два отрезка, которые не пересекаются. Продолжения этих линий пересекаются в точке (0,0), и угол между этими двумя удлиненными линиями действительно будет 90 градусов. Есть вопрос об определении угла между произвольными линиями? или определение, пересекаются ли они? Или что-то другое?
 – 
Mikeb
13 Май 2013 в 17:25
Ну, я перевел гугл, но я имею в виду, что хочу найти угол, под которым две линии пересекают друг друга
 – 
user2377766
13 Май 2013 в 17:26
Что ж, в моей программе я уверен, что две линии пересекаются, мне просто нужно найти угол между ними.
 – 
user2377766
13 Май 2013 в 17:29
Как вы говорите, две линии пересекаются под углом 90 градусов. Так что ваш вопрос непонятен. Что ты хочешь от нас?
 – 
peter.murray.rust
13 Май 2013 в 17:30

1 ответ

Лучший ответ

Этот код вычисляет угол между двумя линиями в радианах:

double angle1 = Math.atan2(ln1.getY1() - ln1.getY2(), ln1.getX1() - ln1.getX2());
double angle2 = Math.atan2(ln2.getY1() - ln2.getY2(), ln2.getX1() - ln2.getX2());
double desiredAngle = angle1 - angle2
0
Vincenzo Maggio 13 Май 2013 в 17:27