Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как правильно расчитать угол по координатам? (http://www.flasher.ru/forum/showthread.php?t=206155)

Akopalipsis 16.01.2014 01:28

Если это так, то скажите, как Вы его туда и по каким критериям перемещаете. Возможно что и угол не нужен.

Добавлено через 42 секунды
я немного глуповат и мне немного тяжело понять по коду весь замысел, но если я Вас ещё немного порасспрашиваю, то возможно и смогу помочь:) Вы находите центр сцены, затем координаты звездочета.
Затем Вы находите радиус и угол.. Но куда Вы звездочёта вернуть хотите?

Добавлено через 12 минут
Код AS3:

STARGAZER.x = CENTER.x + Math.cos(ANGLE) * 200;

Так у Вас работает, а так нет.
Код AS3:

STARGAZER.x = CENTER.x + Math.cos(ANGLE) * RADIUS;

А чему у Вас тогда равен радиус? Или Вы знаете, что изначально звездочет был на расстоянии равное радиусу 200, и подойдя под углом N, сократя радиус на ( допустим половину ), вернуть его обратно на тот же радиус?

Добавлено через 3 минуты
Или он был перемещён по окружности на расстояния радиуса и Вы хотите обратить угол в спять и вернуть его обратно, при этом радиус в начальной точке и в той в которой он сейчас, неизменен?

Dip52 16.01.2014 01:31

Нет, я 200 поставил, чтобы убедиться в работоспособности моего кода.
Координаты x,y задаются случайные.
Но мне интересно именно такое решение, которое я написал выше.

Akopalipsis 16.01.2014 01:35

Если в начале звездочёт был удалён на радиус 200, а потом его рандомно куда-то поставили и Вы не знаете не первоначального угла и радиуса, Вы не сможете его вернуть назад.

Добавлено через 55 секунд
Нужно же знать хоть что-то.

Dip52 16.01.2014 01:39

Я делаю так:
Создаю звездочёта, присваиваю ему случайные координаты.
Изначально я не знаю на какой радиус он отдалён от центра, но я посчитал так, что если я буду проверять расстояние от центра до звездочёта, то буду иметь радиус, потом определив угол, я просто-напросто поставлю его туда же.

Akopalipsis 16.01.2014 01:52

Нет, так нельзя. Полярные координаты служат для того, чтобы перемещать объект по окружности, либо в её пределах. То есть, зная начальные координаты и конечные, можно узнать угол или что-то подобное. Но вот как Вы хотите, это невозможно.

Dukobpa3 16.01.2014 03:11

Код AS3:

const STARGAZERPOINT:Point = new Point(STARGAZER.x,STARGAZER.x);

А здесь два икса это так надо?

Добавлено через 45 секунд
Цитата:

Но вот как Вы хотите, это невозможно.
Че за бред?

Dip52 16.01.2014 03:15

Цитата:

Сообщение от Dukobpa3 (Сообщение 1157470)
Код AS3:

const STARGAZERPOINT:Point = new Point(STARGAZER.x,STARGAZER.x);

А здесь два икса это так надо?

Спасибо. Выручили.

Akopalipsis 16.01.2014 03:32

Цитата:

Че за бред?
Если честно сказать, то я сомневаюсь что правильно понял. Но если учесть, что я не смог выудить информацию о движении объекта, то мне показалось что надо - объект был в (0,0), потом задали координаты случайные, а потом нужно узнать, где объект был До этого. И если учесть что -
Цитата:

Или он был перемещён по окружности на расстояния радиуса и Вы хотите обратить угол в спять и вернуть его обратно, при этом радиус в начальной точке и в той в которой он сейчас, неизменен?
было проигнорировано, то получается что отката угла в ноль не надо.

Isfet 16.01.2014 04:42

Цитата:

Сообщение от Akopalipsis (Сообщение 1157448)
а это Вы делите на .2. я это к тому, что я раньше не знал этого:)

конечно не знал, потому что здесь делится на 5, и это эквивалентно записи
Код AS3:

 x * 0.2;

я так понимаю, тема уже не актуальна, но так для заметки

Цитата:

Сообщение от Dip52 (Сообщение 1157442)
Код AS3:

const CENTER:Point = new Point(Settings.mainContainer.stageWidth/2,Settings.mainContainer.stageHeight/2);


не делайте вот такие записи, они не нужны, Settings.mainContainer.stageWidth/2 - это константа, которая уже известна после инициализации, не нужно ее высчитывать по mouseMove, достаточно высчитать ее один раз,
можно даже ее сделать статичной.


Часовой пояс GMT +4, время: 09:23.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.