2010-11-21 40 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。