AS3: локальный 2D в глобальный 3D? - PullRequest
1 голос
/ 14 февраля 2012

Итак, с тех пор, как появились 3D-слои, AS3 поддерживает следующие функции:

local3DtoGlobal(point3D:Vector3D):Point

и

globalToLocal3D(point:Point):Vector3D

первыйодно преобразование точки внутри преобразованного 3D-слоя в глобальные координаты 2D-этапа, а второе возвращение локальных координат местоположения 2D-этапа, спроецированного на 3D-плоскость (координата z в Vector3D будет равна 0).

* 1012Однако мне нужно что-то вроде

local2DToGlobal3D(point:Point):Vector3D

, которое принимает 2D-локальные координаты (в 3D-преобразованном слое) и возвращает Vector3D, представляющее положение в глобальном 3D-пространстве.

пример:

//_foo3D:MovieClip is a MovieClip with a 3D rotation applied to it, child of the stage
//_bar:MovieClip is some test MovieClip, child of the stage
function asdf(){
    var p:Point = new Point(50,50);
    _foo3D.graphics.beginFill(0,1);
    _foo3D.graphics.drawCircle(p.x, p.y, 50);
    _foo3D.graphics.endFill();

    var p3D:Vector3D = _foo3D.FUNCTIONINEED(p);
    _bar.x = p3D.x;
    _bar.y = p3D.y;
    _bar.z = p3D.z;

//the movieClip _bar should now optically lie over the circle drawn within _foo3D
}

как это сделать?надеюсь, проблема ясна.спасибо! * * 1023

1 Ответ

0 голосов
/ 14 февраля 2012

Взгляните на это . Это помогает? По сути, вам необходимо отменить проекцию 2D-координат в ваше 3D-пространство. Затем вы получите вектор, который указывает в направлении вашей мыши в трехмерном мире. Обычно я нормализую этот вектор (сделайте его равным 1), а затем сформирую, чтобы вы могли проверить разницу z расстояний и выяснить, какие соответствующие координаты x и y мыши находятся в этой позиции z. Вы можете использовать эту информацию для проверки пересечения с различными объектами в трехмерном пространстве.

Для получения дополнительной информации о непри проектировании взгляните на это , которое поможет объяснить некоторые теории (имейте в виду, какую бы функцию, о которой они говорят, вы должны написать ... Я не знаю одного для flash as3 ... вы можете попробовать поискать его в Google).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...