2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу 1, 2  След.
 
 Определение точки
Сообщение10.12.2012, 22:16 
Есть окружность которая передвигается и допустим она смещается с точки А в точку С, но так как точка находится уже на объекте то нужно переместить окружность так что бы она касалась точки В но не пересекала .
Изображение
И тут я что то запутался.
В голову пришел такой вариант:
новые координаты центра = A + (R - (B -A));
т.е что бы найти растояние до нужной точки я от радиуса отнимаю растояние между точками В и А.
Но работает не совсем так..

 
 
 
 Re: Определение точки
Сообщение10.12.2012, 23:23 
MathNoob, Вы сами-то понимаете, о чем спрашиваете? :shock:

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 09:13 
Nacuott, ну да.
Вопрос в том как определить расстояние на которое нужно сместить точку А что бы она была максимально близко к точке В но ее не пересекала.

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 09:17 
Аватара пользователя
Точка A большая и круглая. Её радиус равен R.
Точка B тоже большая, жёлтая и квадратная.
С такими уточнениями, пожалуй, всё сказанное делает смысл.

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 13:53 
Аватара пользователя

(Оффтоп)

ИСН в сообщении #656887 писал(а):
Точка B тоже большая, жёлтая и квадратная.

Хм, а я вижу прямоугольник, или на весь квадрат краски не хватило и показана только закрашенная часть?

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 17:23 
bot, это прямоугольник.

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 18:56 
хм, неужели я так не понятно изложил вопрос?

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 19:36 
Аватара пользователя
Вопрос понятен. Ответ понятен. Чэловек непонятен. Точка минус точка. Точка рэжэт точка. Какой язык говори - понимай нету.

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 19:54 
ИСН, а как нужно сделать?
Я пишу игру, и там есть шарик он может сталкиваться с блоками , у меня проблема при столкновение с углами, определяю столкновение просто, по формуле:
\sqrt{(x2-x1)^2 + (y2-y1)^2}
но если шарик на следующем шаге окажется внутри блока то нужно его координаты установить так что бы он приблизился к углу но не пересекал его, и тут возникает проблема я не пойму как определить расстояние на которое его нужно сместить так что бы он не оказался внутри блока...
П.с понимаю что наверное все очень просто, но пробелы в школьной геометрии дают о себе знать..

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 20:13 
Аватара пользователя
Ну вот можете же, когда захотите. Появились человеческие слова: "шарик", "блок".
А стенки-то у Вас, наверное, уже отработаны? А как?

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 20:22 
ИСН, блоки на уровне движка увеличены на радиус шарика:
если шарик попал в это зону то проверяется с какой стороной он столкнулся (низ/ верх, право/лево) если не с одной из четырех сторон, то проверяем растояние между центром шарика и углами если это расстояние <= радиусу то значить он летит прямо в угол, но так как он может влететь внутрь блока то нужно сдвинуть его так что бы он оказался возле угла и тут у меня проблема в том что у меня не получается определить то расстояние на которое нужно с двинуть его.

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 20:37 
Аватара пользователя
Это всё понятно. Я спрашиваю, что Вы делаете, когда шарик столкнулся со стороной. Как меняете x, y? А ведь есть ещё скорости! С ними как? Или их нету?

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 20:44 
ИСН, допустим на следующем шаге шарик столкнется/ пересечет по y, то:
-y центра шарика = координаты той части блока с которой будет столкновение +/- радиус;
-значение переменной valY на -valY , т.е если он двигался в низ то он будет двигаться в верх.
- изменения скорости пока не трогал..

 
 
 
 Re: Определение точки
Сообщение11.12.2012, 21:14 
Аватара пользователя
Ага, ясно. Ну что ж, на углу всё будет значительно сложнее. Особенно скорости, они будут замешаны в хитрый переплёт, а не просто минус в одном месте. А без них никак. Так что находите угол падения, выражайте через него...

 
 
 
 Re: Определение точки
Сообщение12.12.2012, 02:39 
Аватара пользователя
MathNoob, Ваш вопрос из области collision detection, этому посвящены целые книги или, по крайней мере, главы в книгах по технологии видеоигр. Думаю Вам стоит ознакомиться с литературой...

 
 
 [ Сообщений: 19 ]  На страницу 1, 2  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group