Из прямоугольника в трапецию - PullRequest
1 голос
/ 07 декабря 2009

как я могу превратить прямоугольник в трапецию с помощью ActionScript3

моя трапеция - это пол трехмерной комнаты, и я хочу текстурировать ее (растровое изображение).

 _____________
|  |     |   |
|  |_____|   |
|  /      \  |
| / trapez.\ |
|/__________\|

Ответы [ 3 ]

3 голосов
/ 07 декабря 2009

Это зависит от того, как «прямоугольник» представлен в вашей программе. Несколько вариантов:

  1. Если ваш прямоугольник - вектор, и у вас есть доступ к опорным точкам:

    ---> o------o <---
         |      |
         |      |
         o------o
    

    становится:

           o--o
          /    \
         /      \
         o------o
    

    Просто переведите две верхние точки и сведите их друг с другом.

  2. Если этот «прямоугольник» на самом деле является DisplayObject, вам потребуется «сшить» два одинаковых объекта DisplayObject, чтобы создать новый. Эта страница содержит примеры того, что вы хотите, вместе с примером кода.

  3. Другим вариантом будет использование Papervision3D - в качестве основы используется вышеуказанный метод рендеринга.

  4. Это немного сложно, но это вариант. Вы можете использовать карты смещения, как описано здесь . Код AS2, но он должен быть довольно простым для "переноса".


EDIT

В качестве пар этого ответа я предлагаю вам использовать Papervision3D (см. 3-й вариант) для этого, так как вы можете перемещать камеру вокруг «комнаты». Он также позаботится и о других стенах.

1 голос
/ 07 декабря 2009

идея состоит в том, чтобы разделить его на треугольники, а затем выполнить аффинное преобразование (используя матрицу) над ними ... предоставленный сенокуляром пример кода (для AS2) ...

есть также несколько библиотек в Интернете, но я не могу сейчас их найти ...

0 голосов
/ 07 декабря 2009

Если вы нацелены на FlashPlayer 10, вы можете сделать это, вращая значения вращения клипа, см. Это сообщение от Mike Chambers для получения подробной информации.

В противном случае вам понадобится 3D-движок, такой как Papervision. В Flash Player 9 не существует простого способа выполнения неаффинных преобразований.

Удачи.

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