Тригонометрические головные боли.
|
|
Syank | Дата: Четверг, 27 Декабря 2012, 13:58 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Подскажите, кто по сильнее в этом, как вычеслить координаты(точки) объекта который движется(стоит) ВОКРУГ определённой точки на определённом расстоянии. Как не старался, но вообще не выходит составить формулу. Может в ГМ и стандартные функции могут это вычеслить.
|
|
| |
falcoware | Дата: Четверг, 27 Декабря 2012, 14:01 | Сообщение # 2 |
старожил
Сейчас нет на сайте
| x = X0 + Radius * cos(alfa); y = Y0 + Radius * sin(alfa);
X0, Y0 - координаты точки окружности, Radius - его радиус, алфа - угол поворота.
|
|
| |
Syank | Дата: Четверг, 27 Декабря 2012, 14:07 | Сообщение # 3 |
участник
Сейчас нет на сайте
| Чтото подобное я и делал-_о Только там координаты вальировались от -30 000 до 30 000:D ладно попробуем ещё раз, мб не так что писал.Добавлено (27.12.2012, 14:07) --------------------------------------------- Супер! Я в своей формуле жёстко накосячил. Спасибо)
|
|
| |
Сибирский | Дата: Четверг, 27 Декабря 2012, 14:43 | Сообщение # 4 |
Javatar
Сейчас нет на сайте
| lendir_x(dir, len)
|
|
| |
Syank | Дата: Суббота, 29 Декабря 2012, 02:21 | Сообщение # 5 |
участник
Сейчас нет на сайте
| Короче - в этой формуле чтото не так. Там прокручивается сильно далеко. Вот круг крутится вокруг заданной точки и крутится он туда, куда мышь курсор направлен. А с этой формулой мышью чуть дёрнешь - этот кружёк 17 оборотов .
|
|
| |
uslucifer | Дата: Воскресенье, 30 Декабря 2012, 12:17 | Сообщение # 6 |
постоянный участник
Сейчас нет на сайте
| Syank, Формула правильная!
Сообщение отредактировал uslucifer - Воскресенье, 30 Декабря 2012, 13:49 |
|
| |
Syank | Дата: Воскресенье, 30 Декабря 2012, 14:12 | Сообщение # 7 |
участник
Сейчас нет на сайте
| Напиши её на ГМЛ - увидишь её правильность. Может я где то не те числа подставляю, что по моему исключено. Так то она вроде и правильная, а программа вычесляет совсем не те координаты.
|
|
| |
uslucifer | Дата: Воскресенье, 30 Декабря 2012, 19:29 | Сообщение # 8 |
постоянный участник
Сейчас нет на сайте
| Syank, Вот пожалуйста, радиус изменяется колесиком мыши надеюсь этого достаточно чтобы показать работоспособность формулы? если помог плюсуем в репу.
Сообщение отредактировал uslucifer - Воскресенье, 30 Декабря 2012, 19:35 |
|
| |
Syank | Дата: Воскресенье, 30 Декабря 2012, 22:05 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Надо не только радиус но и угол менять. Я через lendir_x(dir, len) вроде сделал.
|
|
| |
uslucifer | Дата: Воскресенье, 30 Декабря 2012, 23:45 | Сообщение # 10 |
постоянный участник
Сейчас нет на сайте
| Syank, мне по душе scirra contruct а с макером впервые попробовал. вопрос с углом не совсем мне понятен потому что аргументом тригонометрической функции является угол. опишите свою идею объективно, а я попробую написать пример.
|
|
| |
Revolver_45 | Дата: Понедельник, 31 Декабря 2012, 00:48 | Сообщение # 11 |
почетный гость
Сейчас нет на сайте
| Правильная формула) в гейм мэйкере просто для Y пиши минус радиус т.к. вертикальная ось, как оказалось, почему-то перевёрнута. И градусы в радианы переводить нужно.
Код //Create x=320; y=240; r=32; point_x=0; point_y=0; point_r=3
Код //Step var alpha; alpha=degtorad(point_direction(x,y,mouse_x,mouse_y)); point_x=x+32*cos(alpha); point_y=y-32*sin(alpha);
Код //Draw draw_set_color(c_white); draw_circle(x,y,r,1); draw_set_color(c_red); draw_circle(point_x,point_y,point_r,0);
Работает!
rtytyrtyr
Сообщение отредактировал Revolver_45 - Понедельник, 31 Декабря 2012, 00:57 |
|
| |
Syank | Дата: Понедельник, 31 Декабря 2012, 11:50 | Сообщение # 12 |
участник
Сейчас нет на сайте
| Я же написал. Цитата (Syank) Я через lendir_x(dir, len) вроде сделал. Цель достигнута! Зачем дальше изводиться? Просто год назад я реализовал такую функцию, посредством такой же функции. Получил такой же результат, и что то ещё домножал или иначе как то приобразовывал. Как, вспомнить не могу, а исходников тех уже, увы, нету. Там для меня много полезного было.
|
|
| |