Воскресенье, 22 Декабря 2024, 17:44

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Тригонометрические головные боли.
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) вроде сделал.
Цель достигнута! Зачем дальше изводиться? Просто год назад я реализовал такую функцию, посредством такой же функции. Получил такой же результат, и что то ещё домножал или иначе как то приобразовывал. Как, вспомнить не могу, а исходников тех уже, увы, нету. Там для меня много полезного было.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг