没有合适的资源?快使用搜索试试~ 我知道了~
Java3d加载3D模型的技术
1星 需积分: 50 26 下载量 155 浏览量
2013-09-06
20:11:58
上传
评论 1
收藏 95KB DOC 举报
温馨提示
试读
17页
java3D 加载技术基础。可用于复用,以及理解各种加载的基础原理和基础步骤,含各种函数的调用。
资源推荐
资源详情
资源评论
Java3D- 加载显示
3D
模型
博客分类:
Java3D
SUN C C++ C# UP
关键词:Java3D,3D 模型文件,加载显示
利用 Java3D 查看一个 3D 模型文件(如附件),模型文件可以展示一个 3D 的图案。运行程
序后,可以任意角度的查看该文件。
运行效果如下:
源码如下:
Java 代码
1. packagecom.zakisoft.hw;
2.
3. /*
4. *@(#)ConfigObjLoad.java1.302/04/0115:04:14
5. *
6. *Copyright(c)1996-2002SunMicrosystems,Inc.AllRightsReserved.
7. *
8. *Redistributionanduseinsourceandbinaryforms,withorwithout
9. *modification,arepermittedprovidedthatthefollowingconditions
10. *aremet:
11. *
12. *-Redistributionsofsourcecodemustretaintheabovecopyright
13. *notice,thislistofconditionsandthefollowingdisclaimer.
14. *
15. *-Redistributioninbinaryformmustreproducetheabovecopyright
16. *notice,thislistofconditionsandthefollowingdisclaimerin
17. *thedocumentationand/orothermaterialsprovidedwiththe
18. *distribution.
19. *
20. *NeitherthenameofSunMicrosystems,Inc.orthenamesof
21. *contributorsmaybeusedtoendorseorpromoteproductsderived
22. *fromthissoftwarewithoutspecificpriorwrittenpermission.
23. *
24. *Thissoftwareisprovided"ASIS,"withoutawarrantyofany
25. *kind.ALLEXPRESSORIMPLIEDCONDITIONS,REPRESENTATIONSAND
26. *WARRANTIES,INCLUDINGANYIMPLIEDWARRANTYOFMERCHANTABILITY,
27. *FITNESSFORAPARTICULARPURPOSEORNON-INFRINGEMENT,AREHEREBY
28. *EXCLUDED.SUNANDITSLICENSORSSHALLNOTBELIABLEFORANYDAMAGES
29. *SUFFEREDBYLICENSEEASARESULTOFUSING,MODIFYINGOR
30. *DISTRIBUTINGTHESOFTWAREORITSDERIVATIVES.INNOEVENTWILLSUN
31. *ORITSLICENSORSBELIABLEFORANYLOSTREVENUE,PROFITORDATA,OR
32. *FORDIRECT,INDIRECT,SPECIAL,CONSEQUENTIAL,INCIDENTALOR
33. *PUNITIVEDAMAGES,HOWEVERCAUSEDANDREGARDLESSOFTHETHEORYOF
34. *LIABILITY,ARISINGOUTOFTHEUSEOFORINABILITYTOUSESOFTWARE,
35. *EVENIFSUNHASBEENADVISEDOFTHEPOSSIBILITYOFSUCHDAMAGES.
36. *
37. *YouacknowledgethatSoftwareisnotdesigned,licensedorintended
38. *foruseinthedesign,construction,operationormaintenanceof
39. *anynuclearfacility.
40. */
41.
42. importjava.awt.event.KeyAdapter;
43. importjava.awt.event.KeyEvent;
44. importjava.io.FileNotFoundException;
45. importjava.net.MalformedURLException;
46. importjava.net.URL;
47. importjava.util.Map;
48.
49. importjavax.media.j3d.Alpha;
50. importjavax.media.j3d.AmbientLight;
51. importjavax.media.j3d.Background;
52. importjavax.media.j3d.BoundingSphere;
53. importjavax.media.j3d.BranchGroup;
54. importjavax.media.j3d.Canvas3D;
55. importjavax.media.j3d.DirectionalLight;
56. importjavax.media.j3d.RotationInterpolator;
57. importjavax.media.j3d.Sensor;
58. importjavax.media.j3d.Transform3D;
59. importjavax.media.j3d.TransformGroup;
60. importjavax.vecmath.Color3f;
61. importjavax.vecmath.Point3d;
62. importjavax.vecmath.Vector3f;
63.
64. importcom.sun.j3d.loaders.IncorrectFormatException;
65. importcom.sun.j3d.loaders.ParsingErrorException;
66. importcom.sun.j3d.loaders.Scene;
67. importcom.sun.j3d.loaders.objectfile.ObjectFile;
68. importcom.sun.j3d.utils.behaviors.sensor.Mouse6DPointerBehavior;
69. importcom.sun.j3d.utils.behaviors.vp.OrbitBehavior;
70. importcom.sun.j3d.utils.universe.ConfiguredUniverse;
71. importcom.sun.j3d.utils.universe.ViewingPlatform;
72.
73. publicclassConfigObjLoad{
74.
75. privatebooleanspin=false;
76. privatebooleannoTriangulate=false;
77. privatebooleannoStripify=false;
78. privatedoublecreaseAngle=60.0;
79. privateURLfilename=null;
80.
81. privateConfiguredUniverseu;
82.
83. publicBranchGroupcreateSceneGraph(){
84. //Createtherootofthebranchgraph
85. BranchGroupobjRoot=newBranchGroup();
86.
87. //CreateaTransformgrouptoscaleallobjectssothey
88. //appearinthescene.
89. TransformGroupobjScale=newTransformGroup();
90. Transform3Dt3d=newTransform3D();
91. t3d.setScale(0.7);
92. objScale.setTransform(t3d);
93. objRoot.addChild(objScale);
94.
95. //Createthetransformgroupnodeandinitializeittothe
96. //identity.EnabletheTRANSFORM_WRITEcapabilitysothat
97. //ourbehaviorcodecanmodifyitatruntime.Addittothe
98. //rootofthesubgraph.
99. TransformGroupobjTrans=newTransformGroup();
100. objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE)
;
101. objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
102. objScale.addChild(objTrans);
103.
104. intflags=ObjectFile.RESIZE;
105. if(!noTriangulate)
106. flags|=ObjectFile.TRIANGULATE;
107. if(!noStripify)
108. flags|=ObjectFile.STRIPIFY;
109. ObjectFilef=newObjectFile(flags,
110. (float)(creaseAngle*Math.PI/180.0));
111. Scenes=null;
112. try{
113. s=f.load(filename);
114. }catch(FileNotFoundExceptione){
115. System.err.println(e);
116. System.exit(1);
117. }catch(ParsingErrorExceptione){
118. System.err.println(e);
119. System.exit(1);
120. }catch(IncorrectFormatExceptione){
121. System.err.println(e);
122. System.exit(1);
123. }
124.
125. objTrans.addChild(s.getSceneGroup());
126.
127. BoundingSpherebounds=newBoundingSphere(newPoint3d(0.0,
0.0,0.0),
128. 100.0);
129.
130. if(spin){
131. Transform3DyAxis=newTransform3D();
132. AlpharotationAlpha=newAlpha(-1,Alpha.INCREASING_ENA
BLE,0,0,
133. 4000,0,0,0,0,0);
134.
135. RotationInterpolatorrotator=newRotationInterpolator(
136. rotationAlpha,objTrans,yAxis,0.0f,
137. (float)Math.PI*2.0f);
138. rotator.setSchedulingBounds(bounds);
139. objTrans.addChild(rotator);
140. }
141.
142. //Setupthebackground
143. Color3fbgColor=newColor3f(0.05f,0.05f,0.5f);
144. BackgroundbgNode=newBackground(bgColor);
145. bgNode.setApplicationBounds(bounds);
146. objRoot.addChild(bgNode);
147.
148. //Setuptheambientlight
149. Color3fambientColor=newColor3f(0.1f,0.1f,0.1f);
150. AmbientLightambientLightNode=newAmbientLight(ambientColo
r);
151. ambientLightNode.setInfluencingBounds(bounds);
剩余16页未读,继续阅读
资源评论
- 名大侠子君2019-05-31希望不要让我失望!找了大半天还是没太大收获!CSND这个平台很混乱!你们看这些代码都写的什么啊!乱七八糟的,官方在干什么?.........
abrahamsujq
- 粉丝: 0
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功