嗨我想在瀏覽器中呈現交互式3D球體。它的紋理將是世界地圖,所以基本上我試圖創建一個可以使用地圖在任何方向旋轉的地球儀。我很喜歡使用SVG呈現2D圖像,但不知道如何在SVG中呈現3D形狀。 是否可以在SVG中渲染3D形狀,如果是,如何?如果不是,WebGl是一個更好的選擇?使用SVG或WebGL的3D形狀
回答
WebGL是你最好的選擇,因爲性能。您可能能夠利用(或至少從中學習)演示,如http://www.chromeexperiments.com/globe(請參閱http://data-arts.appspot.com/globe-search)。 http://www.chromeexperiments.com還有其他全球演示。
這是最好的解決方案。儘管它需要相當多的代碼和一些OpenGL/GLSL /數學知識。 – Artefact2 2011-05-26 05:14:10
看看three.js的一些抽象實現(自帶WebGL/SVG/Canvas後端)。
SVG是一種二維矢量圖形格式,但您可以將3d形狀投影到2D上,因此可以使用SVG呈現3D對象,這只是一點工作(最好留給JavaScript庫)。
「SVG是2D矢量圖形格式,但你可以將3D形狀投影到2D上」。我同意但可以讓他們互動?我可以旋轉我在svg中創建的三維球體嗎? – alter 2011-05-25 10:05:16
svg中的任何形狀都可以是交互式的,但SVG本身並不知道某些形狀代表了3d對象。這裏有一個簡單的例子(帶有mouseover處理程序的3D立方體):http://apike.ca/prog_svg_threed.html – 2011-05-26 07:10:29
如果你使用SVG,那麼陰影會成爲一個問題。適當的陰影在SVG中是不可能的,儘管你可能能夠僞裝它幾個選擇的情況。對於3D,如果模型中有十多個多邊形,則必須使用WebGL。
這是一個關鍵點,對我來說,它使webGL不是更好的解決方案,而是唯一*解決方案。即使你設法將它們拼湊在一起,你也會花費更多的時間讓它看起來像sgg中的非lego(更不用說工作正常 - 裁剪等),而不是花費在做webGL匹配上的額外時間SVG交互性。 – 2012-12-17 13:01:47
@ posfan12我在尋找有關問題的幫助。搜索SO,你是唯一提供關於着色SVG圖形的意見的人。請看看http://stackoverflow.com/questions/13905255/how-to-change-color-of-a-composite-svg-oject – 2012-12-18 02:05:43
你必須用投影變換所有點 用這個來的三維點(X,Y,Z)改變的Point2D(X,Y):
// Language Javascript
// object Point
function Point(x,y,z){
this.x = x;
this.y = y;
this.z = z;
}
// Projection convert point 2D in 3D
function ProjectionPoint(point){
if (!(point instanceof Point))
throw new TypeError("ProjectionPoint: incorrect type parameter");
return { x: (point.x<<8)/(point.z+Zorig)+Xorig,
y: (point.y<<8)/(point.z+Zorig)+Yorig,
z:point.z }
}
確保,你在定義你的原產點變量Xorig,Yorig,Zorig
- 1. Spinning 3D WebGL形狀
- 2. 在SVG或WebGL中使用畫布進行3D應用
- 3. 使用WebGL 3D形狀作爲2D帆布圖像
- 4. 使用圖像使用webgl,html5 canvas的3D圖形實現
- 5. 3D scatterplot javascript或SVG
- 6. 使用javascript的3D立方體形狀
- 7. 使用css形狀的SVG大小
- 8. WebGL更改形狀動畫
- 9. 用Java拾取形狀3D
- 10. 使用飛機切割3d形狀
- 11. 使用JavaScript努力創建SVG形狀
- 12. SVG到Android形狀
- 13. SVG中的形狀繼承
- 14. Android中的圖形形狀3D
- 15. 在SVG形狀和clipPath上使用變形動畫的問題
- 16. 如何變形複雜的svg形狀
- 17. SVG使用Javascript平滑地將形狀變形爲其他預定義形狀
- 18. 3D形狀分析工具
- 19. Javafx 8 3D複雜形狀
- 20. 命中測試SVG形狀?
- 21. SVG抽象形狀響應
- 22. SVG形狀文字換行
- 23. SVG自定義圓形狀
- 24. 3D地圖 - 在WebGL的
- 25. 如何使用圓形漸變填充製作svg形狀?
- 26. SVG座標數組多邊形形狀
- 27. 如何用圖像替換SVG形狀?
- 28. 使用pChart的3D圖形
- 29. 如何在SVG中實現形狀沿着路徑的形狀
- 30. D3JS或SNAPSVG拖放限制到加載的SVG形狀區域
'我想在瀏覽器中呈現交互式3D球體 - 哪個瀏覽器? – atlavis 2011-05-23 10:38:04
你問了一下http://kathack.com/ – Ibu 2011-05-24 08:19:59
@atlavis,任何可以支持解決方案的瀏覽器.C'mon – alter 2011-05-25 10:03:26