2012-02-13 3 views
1

Таким образом, поскольку 3D слои получили введены, AS3 поддерживает следующие функции:AS3: локальный 2D-глобальный 3D?

local3DtoGlobal(point3D:Vector3D):Point

и

globalToLocal3D(point:Point):Vector3D

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

Что мне нужно, однако, что-то вроде

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 
} 

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

ответ

0

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

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

Смежные вопросы