Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 09.12.2010, 16:55
maksimov вне форума Посмотреть профиль Отправить личное сообщение для maksimov Найти все сообщения от maksimov
  № 1  
Ответить с цитированием
maksimov
 
Аватар для maksimov

Регистрация: Jan 2010
Сообщений: 28
По умолчанию Поиск соседних точек на окружности.

Имеется массив мувиков, расположенных по окружности:
Код AS3:
var objects:Array = new Array();
 
while (a < b)
{
    mc = new MyObject();
    mc.angle = ((2 * Math.PI) / 360) * randInt(1, 360);
    mc.x = radius * Math.cos(mc.angle);
    mc.y = radius * Math.sin(mc.angle);
    objects.push(mc);
 
    a++;
}
Пытаюсь найти для одного из этих мувиклипов два соседних(ближайшего справа и ближайшего слева):
Код AS3:
public function searchNeighbor(mo:MyObject):void
{
    mo.neighborLeft = null;
    mo.neighborRight = null;
 
    var locObjects:* = objects;
    for each (var locObject:* in locObjects)
    {
        if (locObject != mo)
        {
            if (mo.neighborLeft == null || MyObject(locObject).angle < mo.neighborLeft.angle)
            {
                mo.neighborLeft = MyObject(locObject);
            }
 
            if (mo.neighborRight == null || MyObject(locObject).angle > mo.neighborRight.angle)
            {
                mo.neighborRight = MyObject(locObject);
            }
        }
    }
}
Из-за того, что "земля круглая", я естественно получаю неверный результат в ряде случаев. Мучительно начинаю искать решение(%Math.PI, if (mo.neighborRight.angle > Math.PI && locObject.angle > Math.PI),... и т.д.), но всё безрезультатно. Торможу в общем.
Подскажите пожалуйста.

Создать новую тему   Часовой пояс GMT +4, время: 20:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
вычисление , окружность , угол

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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