代码之家  ›  专栏  ›  技术社区  ›  Armen Mkrtchyan

从矩形到梯形

  •  1
  • Armen Mkrtchyan  · 技术社区  · 15 年前

    我的梯形是一个三维房间的地板,我想纹理(位图瓷砖)。

     _____________
    |  |     |   |
    |  |_____|   |
    |  /      \  |
    | / trapez.\ |
    |/__________\|
    
    3 回复  |  直到 15 年前
        1
  •  3
  •   Community CDub    7 年前

    这取决于“矩形”在程序中的表示方式。选项很少:

    1. ---> o------o <---
           |      |
           |      |
           o------o
      

      变成:

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

      简单地翻译两个顶点,并将它们彼此浓缩。

    2. DisplayObject ,则需要“缝合”同一DisplayObject的两个以创建新的DisplayObject。 This page 有你想要的例子和例子代码。

    3. 另一种选择是使用 Papervision3D

    4. 这个有点棘手,但这是一个选择。可以使用所述的置换贴图 here . 代码是AS2,但“port”应该相当简单。


    按面值 this answer ,我建议您使用Papervision3D(请参见第3个选项)来执行此操作,因为您可能需要在“房间”中移动相机。它也会照顾其他的墙壁。

        2
  •  1
  •   Taryn Frank Pearson    11 年前

    其思想是把它分成三角形,然后对它们进行仿射变换(使用矩阵)。。。 senocular provided sample code

        3
  •  0
  •   alecmce    15 年前

    如果以FlashPlayer 10为目标,可以通过旋转片段的旋转值来实现,请参见 This post form Mike Chambers 详情。