订单时绘制一个

我试图制作一个简单的JavaScript,在画布上绘制矩形,然后基于一点透视画出侧面。 问题是,矩形的数量和它们的位置是任意的,因此面部倾向于以真正3D透视中不会发生的方式重叠。 我怎样才能确定正确的绘图顺序,使其不会发生?

这里有一些截图来说明我的意思:

截图1 - 错误的方式。 在这一个中,红色,绿色和蓝色块的分组按照它们应该如何绘制的相反顺序绘制。

截图2 - 正确的方法。 这是它应该绘制的方式。


只要你没有任何相交的多边形,你所寻找的就是所谓的画家算法


由于你的屏幕截图不起作用,我会大胆猜测,并假设你的问题是从后到前绘制矩形产生奇怪的重叠。

解决这个问题的一种方法是使用简单的二进制空间分区。 实质上,将每个面向前的矩形展开为无限的平面。 然后,将这些平面相交的所有边矩形分开。 然后,从前到后绘制不应该产品重叠,因为在发生任何重叠问题的任何地方都会分割出矩形。

编辑:啊,现在你的截图工作,我不认为这是你的问题。 好吧,我会留下答案。

链接地址: http://www.djcxy.com/p/64009.html

上一篇: order when drawing in a one

下一篇: Finding the 4th point of quadrangle. (After perspective transform)