как я могу превратить прямоугольник в трапецию с помощью ActionScript3
моя трапеция - это пол трехмерной комнаты, и я хочу текстурировать ее (растровое изображение).
_____________ | | | | | |_____| | | / \ | | / trapez.\ | |/__________\|
Это зависит от того, как «прямоугольник» представлен в вашей программе. Несколько вариантов:
Если ваш прямоугольник - вектор, и у вас есть доступ к опорным точкам:
---> o------o <--- | | | | o------o
становится:
o--o / \ / \ o------o
Просто переведите две верхние точки и сведите их друг с другом.
Если этот «прямоугольник» на самом деле является DisplayObject, вам потребуется «сшить» два одинаковых объекта DisplayObject, чтобы создать новый. Эта страница содержит примеры того, что вы хотите, вместе с примером кода.
DisplayObject
Другим вариантом будет использование Papervision3D - в качестве основы используется вышеуказанный метод рендеринга.
Это немного сложно, но это вариант. Вы можете использовать карты смещения, как описано здесь . Код AS2, но он должен быть довольно простым для "переноса".
В качестве пар этого ответа я предлагаю вам использовать Papervision3D (см. 3-й вариант) для этого, так как вы можете перемещать камеру вокруг «комнаты». Он также позаботится и о других стенах.
идея состоит в том, чтобы разделить его на треугольники, а затем выполнить аффинное преобразование (используя матрицу) над ними ... предоставленный сенокуляром пример кода (для AS2) ...
есть также несколько библиотек в Интернете, но я не могу сейчас их найти ...
Если вы нацелены на FlashPlayer 10, вы можете сделать это, вращая значения вращения клипа, см. Это сообщение от Mike Chambers для получения подробной информации.
В противном случае вам понадобится 3D-движок, такой как Papervision. В Flash Player 9 не существует простого способа выполнения неаффинных преобразований.
Удачи.