2010-11-21 66 views
0

我感兴趣的是,如何在运行时使用PHP,JS绘制3D图像。 (或什么其他编程语言为此建议..)运行时绘制3D图像

Specfically:我有一个数据库表与两个提交。用户和蜡烛。例如Michael,100表示​​Michael有100支蜡烛。

如果我有一个10×10的蜡烛图像如何使用此图片绘制了“3D蜡烛形象”,像this

所以,我对于exapmle一个300x300的DIV,我想与填写在3d样式的candle.png。如果用户在数据库中有3支蜡烛,然后随机填写3支蜡烛,如果用户有30支,然后填写30支蜡烛。

请帮我该怎么做?

+0

你能展示一个真实世界的例子来进一步阐明吗?如果你想用PHP做光线追踪,你可以马上停下来 - 但你可能会调用第三方渲染器(POVRay还在吗?)。简单的2D复制操作可能是可能的。 – 2010-11-21 17:46:49

回答

0

渲染3d图形虽然可能并不是真正为php和javascript创建的。

如果您正在寻找将预先呈现的蜡烛图像输出到您的页面的方法,那么这些语言非常简单,但我认为您需要让您的问题更具体以获得有用的答案。

+0

你不知道。如果他想复制几个精灵来创建一个3D效果,它可能会在范围之内。 – 2010-11-21 17:47:39

+1

复制精灵与渲染3D图形不同。 – Greg 2010-11-21 17:49:39

+1

你不知道他是否真的想渲染3D图形。这个问题需要大量的澄清 – 2010-11-21 17:50:24

0

如果你可以在你的服务器上运行任意代码,我推荐使用类似于http://liballeg.org/的程序来创建一个程序,该程序与CGI一起运行并从javascript中查询它。我认为你正在寻找所谓的仿射变换;看看它;我相信,快板支持他们。

+0

具体而言,您需要apply_matrix()函数。随机化每个蜡烛的3x3变换矩阵的适当单元,然后应用矩阵。 – Actorclavilis 2010-11-21 17:51:07

0

如何解决这个问题取决于你希望如何显示给用户,例如,如果用户应该能够旋转图像,那么它需要靠近用户完成,即在浏览器上。

如果它只是一个静态位图是最终的结果,那么在服务器上执行它可能是最好的,对于性能。

无论哪种方式,这涉及到很多数学,但我会假设你知道数学。

要在PHP中执行此操作,您可以使用gdlib保存图像,并在寻找光线追踪的C中查找任何示例。这将是缓慢的,并将在您的网络服务器的性能打击,但有解决方案。

如果你想用javascript来做,那么你最好的办法是使用3D画布(https://wiki.mozilla.org/Canvas:3D),但目前浏览器的支持非常有限,但它确实可以让你访问openGL API。