AS3 - 几何 - 2D平面上某点的透视投影

elF*_*hor 6 math 3d geometry actionscript-3

我目前正在努力解决一个远远超出我数学能力的问题(自从我做了一些正确的数学以来已经很长时间了......)我会很感激一些帮助.

这是我的设置:我有一些简单的形状(矩形),我将它们的底点"投射"在一条线上,来自Origin点.到目前为止,一切都很好.但是现在我想把原始的形状画成扭曲的,好像是在平面上用一些透视投影的.

请考虑我的代码中没有任何与旋转,等距或任何3D或假2D视角相关的内容,我只是尝试使用图形库绘制一些形状,只有真实的感觉.

这是我正在尝试做的快速绘图:

在此输入图像描述

我知道的 :

  • 原点坐标
  • 矩形位置和大小
  • 红线位置
  • A&B点坐标

我想要确定的是C&D点的坐标,如果我没有努力找到"Origin bis"坐标,这可能很容易.

我想要做的是伪造我的矩形投影在可以被视为"地板"的东西上(与我的原始矩形可以看作墙壁的平面相关).

也许我过度复杂化问题或者我没有看到任何其他更简单的方法来做到这一点,但我在任何几何或数学方面都不再好...... :-(

非常感谢你的回答 !

Dir*_*irk 0

嗯,我不知道我是否理解正确,但我认为你的输入参数太少了:

你说提供了以下信息:

  • 原点坐标
  • 矩形位置和大小
  • 红线位置
  • A、B点坐标

我认为仅凭这些信息不可能获得投影矩形。此外,我认为你的绿线和“起源之二”也没有帮助。

也许,试试这个:假设,也给出了一条穿过点 C 和 D 的蓝线。然后,您可以通过将矩形的顶部投影到蓝线上来找到投影的矩形。

总而言之:您定义一个原点+两条平行线,一条红色和一条蓝色。然后,您可以将矩形的顶部投影到蓝线上,将矩形的底部投影到红线上,得到点 A、B、C、D

我希望这有帮助。