![]() |
Как работает ось Z
Немного не понял каким образом работает ось z, насколько я понимаю она должна быть направлена перпендикулярно плоскости монитора, но когда начинаю менять координату z - объекта, он начинает "съезжать" (визуально менять координату центра), а ммне нужно чтобы он увеличивался относительно центра, как такое можно сделать? Также интересует каким образом зависит "съезжание" объекта от положения точки регистрации ?
|
>>он начинает "съезжать"
зависит от того, откуда 'смотрим' Код AS3:
|
то есть если мне нужно "приподнять" все объекты на 2D карте, нужно для каждого объекта перемещать наблюдателя в центр объекта? это нормальная практика? тоесть по сути z- это будет высота объекта на 2d карте, просто нужна высота, для будущего преобразования карты в 3D, а еще вопрос, допустим для масштабирования карты целиком нормально ли использовать этот подход? или лучше скейл
Добавлено через 11 минут вот переделал ваш код, это нормальный подход или костыли? Код AS3:
|
>>нужно для каждого объекта перемещать наблюдателя в центр объекта?
трудно сказать что нужно - есть наблюдатель, есть объекты, от их взаимного расположения зависит проекция на экран.., при этом для разных объектов эта зависимость может быть и разная, ага >>это нормальная практика? при наличии сегодня вменяемых 3Д движков типа away3d \ Alternativa, это псевдо-3Д вообще никакая не практика, все настолько невнятно и мутно, что разруливать эту логику нет никакого желания |
Съезжает он вниз из-за перспективной проекции, отключите перспективу и ни че съезжать не будет, но и растягиваться тоже.
|
в том то и дело, что нужно чтобы объекты на карте растянулись, но не съезжали, и растянулись все относительно своего центра
|
Где ноль по х,у - от того места и растягиваются.
Если ноль в лево-верх - понятно что съедут. |
так вот, чтобы несколько объектов по оси Z сдвинуть относительно их центров, нужно для каждого объекта точку наблюдателя переназначать? или есть какие-то альтернативные способы?
|
для такого расклада (наблюдатель всегда напротив) не нужно никакого 3D, посчитать как изменится объект можно из элементарной геометрии
в терминах того же примера это Код AS3:
|
объекты с большой вложенностью, и с фильтрами на разных уровнях, при скейле нужно будет еще пересчитывать все фильтры, а при движении по оси z - фильтры "растягиваются" вместе с объектом", а если учитывать что вся эта карта (со всеми объектами тоже скейлится, и при этом скейле я уже пересчитываю все фильтры) то скейл каждого объекта выглядит вдвойне проблематичней
|
| Часовой пояс GMT +4, время: 17:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.