Вниз  Java-программирование (1-ые посты)
- 1.12.2016 / 18:07
DominaN
  Пользователь

DominaN 
Сейчас: Offline
aRiGaTo, Сначала нужно правильно руками копать научиться, а потом уже и переходить на лопату можно
- 1.12.2016 / 20:52
NaruTrey
  Пользователь

NaruTrey 
Сейчас: Offline
aRiGaTo, у него трафик дорогой, Maven и Gradle ещё кучу всего потащат из инета.
__________________
 Чёрные усы кричает этот свисть
- 1.12.2016 / 20:54
NaruTrey
  Пользователь

NaruTrey 
Сейчас: Offline
Wladimir134679, у меня нормально качается. Что-то с инетом тебе надо делать.
__________________
 Чёрные усы кричает этот свисть
- 5.12.2016 / 23:58
Ze88s
  Пользователь

Ze88s 
Сейчас: Offline
Всем привет, тут такой вопрос созрел, нужно объект А(xa,ya) переместить к объекту Б(xb,yb), но там в идеале вроде как нужно по формуле(даже не знаю как толком описать суть вопроса).
Например таким способом
  1. if (getPosition().x>PointX)
  2.             {          
  3.                         getPosition().x=getPosition().x-SPEED,
  4.  
  5.             }else {
  6.                     getPosition().x=getPosition().x+SPEED,
  7.                     }
  8.  
  9.  
  10.              if (getPosition().y>PointY)
  11.             {
  12.  
  13.                         getPosition().y=getPosition().y-SPEED,
  14.  
  15.             }else {
  16.                     getPosition().y=getPosition().y+SPEED,
  17.                     }
  если угол между объектами не равен 90 то он как бы сначала ровняется по координатам х,у а потом уже движется по у, что в принципе не очень практично, а мне нужно что бы он сразу двигался к объекту Б напрямую, если не понятен суть вопроса могу нарисовать что ли :-D.
- 6.12.2016 / 00:27
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Ze88s, всё предельно ясно. Здесь поможет тригонометрия.

Сначала нужно узнать угол между двумя точками:
  1. double angle = Math.atan2(B.y - A.y, B.x - A.x); // угол в радианах
Далее задаём некоторую скорость, например:
  1. double SPEED = 2.2;
И, наконец, получаем приращение к координатам x и y:
  1. double dx = Math.cos(angle) * SPEED;
  2. double dy = Math.sin(angle) * SPEED;
  3.  
  4. getPosition().x += dx;
  5. getPosition().y += dy;

Вот демонстрация на js
http://jsfiddle.net/aNNiMON/bgm9eray/
И ещё одна, с тем же алгоритмом, только объект B теперь подвижен и управляется мышкой:
http://jsfiddle.net/aNNiMON/bgm9eray/3/
__________________
 let live

Изменено aNNiMON (6.12 / 14:26) (всего 6 раз)
- 6.12.2016 / 13:55
Ze88s
  Пользователь

Ze88s 
Сейчас: Offline
aNNiMON, Очень благодарен тебе все работает, кстати меняя скорость (SPEED), поведение "бегущего" объекта также изменяется он начинает двигаться дугой как-то(не знаю почему так происходит, но выглядит как фича :) )
З.Ы.
getPosition().x += dx;
getPosition().y += dy;

Изменено Ze88s (6.12 / 13:56) (всего 2 раза)
- 17.12.2016 / 19:29
Dimon638
  Пользователь

Dimon638 
Сейчас: Offline
В Java SE есть аналог g.drawRegion(...) из j2me?
- 17.12.2016 / 20:06
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Dimon638, getSubImage
- 17.12.2016 / 22:19
Dimon638
  Пользователь

Dimon638 
Сейчас: Offline
DominaN, спасибо, работает)
- 17.12.2016 / 22:58
DominaN
  Пользователь

DominaN 
Сейчас: Offline
Dimon638, Ой, ну Слава Богу :)
Наверх  Всего сообщений: 16875
Фильтровать сообщения
Поиск по теме
Файлы топика (794)