|
|
|||||
Регистрация: Jun 2006
Сообщений: 1
|
Плоскость в перспективе
Ребята, помогите со скриптом или исходником!
Задача создать четырёхугольник, изображающий плоскость в перспективе - передняя и задняя стороны параллельны границе экрана, боковые стороны сходятся в направлении точки схода. И всё это дело реагирует на движения мышью - если мышь сдвигается влево, то передняя и задняя стороны четырёхугольника перемещаются вправо, причём передняя чуть быстрее, чем задняя. |
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Скорее всего рисовать придется каждый кадр.
Считай геометрию и рисуй (beginFill(), lineTo()) Надо спросить авторов (тут есть такие), как создавались 3D движки (которые лежат тут же, в исходниках). Самому в исходники мне пока не хватит здоровья лезть. |
|
|||||
Регистрация: Apr 2006
Сообщений: 88
|
если нужен - не пожадничаю, могу выложить 3д движок рисующий (легко анимируемый) любой 3д объект по координатам узловых точек (x,y,z), принимаемых в виде массива
|
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
А можно лучше его словесный алгоритм в пару абзацев )
сам напишу ) |
|
|||||
Регистрация: Apr 2006
Сообщений: 88
|
создаётся 3д объект, а затем пересчитываются координаты его узловых точек в зависимости от нужных тебе трансформаций (поворот по оси/осям, масштабирование, перемещение и т.д.).для быстроты расчётов исп. матрицы (2-мерные массивы). вся сложность будет в том что-бы создать матрицы нужных тебе трансформаций (думаю вращение вокру осей X, Y и Z). а в последствии умножаешь матрицу с координатами кадой из узлов на м-цы нужных трансформаций и перерисовываешь объект
|
|
|||||
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
|
Вопрос нужна ли такая точность, если нет
//// коэффициент k = .5; this.createEmptyMovieClip ("mc", 0); this.onMouseMove = function () { var x = this._xmouse; this.clear (); this.lineStyle (0, 0); this.moveTo ((-100 + x) * k, 0); this.lineTo ((100 + x) * k, 0); this.lineTo (100 + x, 50); this.lineTo (-100 + x, 50); this.lineTo ((-100 + x) * k, 0); }; this.onMouseMove (); |
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
Прикольно. Запомню.
|
|
|||||
Регистрация: Apr 2006
Сообщений: 88
|
как бы да, для твоего случая пример iNils'а в самый раз
|
|
|||||
Регистрация: Mar 2001
Адрес: msk
Сообщений: 1,416
|
А рисование объектов в твоем примере разве как-то по другому реализовано?
Я кстати всегда хотел спросить, а перекрывание объектов как обычно считают? |
|
|||||
для перекрывания объектов существует громадное количество алгоритмов, и в случае с векторной графикой это...ну не то что бы сложно, но почти невозможно.
если программировать 3д на флэш, то единственным рациональным способом просчета z-индекса является определение расстояния от "камеры" до центра объекта и прорисовка объекторв в последовательности "издалека".
__________________
Жизнь - как сказка. Чем дальше, тем страшнее. |
Часовой пояс GMT +4, время: 17:20. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|