|
<p>VRML代码</p><p>#VRML V2.0 utf8<br/>DEF BALL Transform{<br/> children [<br/> Shape{<br/> appearance Appearance{ material Material{<br/> diffuseColor 1 0 0<br/> shininess .8<br/> }<br/> }<br/> geometry Sphere{radius 0.5}<br/> }<br/> DEF SENSOR TouchSensor{}<br/> ]<br/>}<br/>DEF POS PositionInterpolator{<br/> key[0,0.25,0.5,0.75,1.0]<br/> keyValue[1,1,1,1.3 1.3 1.3, 1.5 1.5 1.5<br/> 1.3 1.3 1.3 1 1 1 ]<br/>}<br/>DEF TIMER TimeSensor{ cycleInterval 1}</p><p>ROUTE SENSOR.touchTime TO TIMER.startTime<br/>ROUTE TIMER.fraction_changed TO POS.set_fraction<br/>ROUTE POS.value_changed TO BALL.set_scale</p><p><br/> Background {<br/> groundAngle [ 0.9, 1.5, 1.57 ]<br/> groundColor [<br/> 0 0.333 0, 0 0.4 0,<br/> 0 0.5 0, 0.62 0.67 0.60<br/> ]<br/> skyAngle [ 0.9, 1.5, 1.57 ]<br/> skyColor [<br/> 0.21 0.18 0.66, 0.2 0.44 0.85,<br/> 0.51 0.81 0.95, 0.77 0.8 0.82<br/> ]<br/> }<br/>DEF INITVIEW Viewpoint{position 0 0 4 description "init_view"}</p><p><br/>vr.wrl <br/>#VRML V2.0 utf8<br/>DEF MYMATERIAL Material{<br/> diffuseColor 0 1 0<br/> shininess 1<br/>}<br/>DEF BALL Transform{<br/> children Shape{<br/> appearance Appearance{<br/> material USE MYMATERIAL<br/> }<br/> geometry Sphere{radius 0.3}<br/> }<br/>}<br/> Background {<br/> groundAngle [ 0.9, 1.5, 1.57 ]<br/> groundColor [<br/> 0 0.333 0, 0 0.4 0,<br/> 0 0.5 0, 0.62 0.67 0.60<br/> ]<br/> skyAngle [ 0.9, 1.5, 1.57 ]<br/> skyColor [<br/> 0.21 0.18 0.66, 0.2 0.44 0.85,<br/> 0.51 0.81 0.95, 0.77 0.8 0.82<br/> ]<br/> }</p><p>DEF INITVIEW Viewpoint{position 0 0 4 description "init_view"}</p><p><br/>Back to Top CtlVrml.java <br/>import java.awt.*;<br/>import java.applet.*;<br/>import vrml.external.Browser;<br/>import vrml.external.Node;<br/>import vrml.external.field.EventInSFColor;</p><p>public class CtlVrml extends Applet {<br/> Scrollbar scrBar[]=new Scrollbar[3];<br/> Label labelColor[]=new Label[3];<br/> Label labelDemo;<br/> Browser browser;<br/> Node myMaterial;<br/> String Text[]={"R=","G=","B="};<br/> boolean isScenceLoading=true ;<br/> public void start(){<br/> while(isScenceLoading){<br/> try{<br/> browser=Browser.getBrowser(this);<br/> myMaterial=(Node)(browser.getNode("MYMATERIAL"));<br/> isScenceLoading=false;<br/> labelDemo.setText("DemoLabel");<br/> }<br/> catch(Exception e){labelDemo.setText("VRML Loading");}<br/> }<br/> }<br/> public void init() {<br/> super.init();<br/> setLayout(null);<br/> resize(240,240);<br/> setBackground(Color.green);<br/> for(int i=0;i<3;i++){<br/> scrBar=new Scrollbar(Scrollbar.HORIZONTAL);<br/> add(scrBar);<br/> scrBar.reshape(0,15+45*i,200,20);<br/> scrBar.setValues(50,0,0,101);<br/> labelColor=new Label(Text+scrBar.getValue(),Label.LEFT);<br/> add(labelColor);<br/> labelColor.setBackground(Color.green);</p><p> labelColor.reshape(200,15+45*i,40,20);<br/> }<br/> labelDemo=new Label("DemoLabel",Label.CENTER);<br/> add(labelDemo);<br/> labelDemo.reshape(90,160,60,60);<br/> labelDemo.setBackground(new Color(122,122,122));<br/> }</p><p> public boolean handleEvent(Event event) {<br/> for(int i=0;i<3;i++){<br/> if (event.id == Event.SCROLL_LINE_UP && event.target == scrBar) {<br/> setColorLabel(event,i);<br/> return true;<br/> }<br/> else<br/> if (event.id == Event.SCROLL_LINE_DOWN && event.target == scrBar) {<br/> setColorLabel(event,i);<br/> return true;<br/> }<br/> else<br/> if (event.id == Event.SCROLL_ABSOLUTE && event.target == scrBar) {<br/> setColorLabel(event,i);<br/> return true;<br/> }<br/> }<br/> return super.handleEvent(event);<br/> }</p><p> public void setColorLabel(Event ev,int i) {</p><p> Color demoColor;<br/> labelColor.setText(Text+scrBar.getValue());<br/> demoColor=new Color((int)(2.55*scrBar[0].getValue()),<br/> (int)(2.55*scrBar[1].getValue()),<br/> (int)(2.55*scrBar[2].getValue())<br/> );<br/> labelDemo.setBackground(demoColor);<br/> float value[]=new float[3];<br/> EventInSFColor newColor=(EventInSFColor)myMaterial.getEventIn("set_diffuseColor");<br/> for(i=0;i<3;i++)<br/> value=(float)(scrBar.getValue()/100f);<br/> newColor.setValue(value);</p><p> }<br/>}</p><p></p><p>vr.wrl</p><p>Back To Top</p><p>#VRML V2.0 utf8<br/>DEF BALL Transform{<br/> children Shape{<br/> appearance Appearance{ material Material{<br/> diffuseColor 1 0 0<br/> shininess 1<br/> }<br/> }<br/> geometry Sphere{radius 0.3}<br/> }<br/>}<br/>DEF POS PositionInterpolator{<br/> key[0,0.25,0.5,0.75,1.0]<br/> keyValue[1 1 1, 2 2 2,4 4 4,2 2 2,1 1 1]</p><p>}<br/>DEF TIMER TimeSensor{<br/> loop TRUE<br/> cycleInterval 8<br/>}<br/>ROUTE TIMER.fraction_changed TO POS.set_fraction<br/>ROUTE POS.value_changed TO BALL.set_scale</p><p><br/> Background {<br/> groundAngle [ 0.9, 1.5, 1.57 ]<br/> groundColor [<br/> 0 0.333 0, 0 0.4 0,<br/> 0 0.5 0, 0.62 0.67 0.60<br/> ]<br/> skyAngle [ 0.9, 1.5, 1.57 ]<br/> skyColor [<br/> 0.21 0.18 0.66, 0.2 0.44 0.85,<br/> 0.51 0.81 0.95, 0.77 0.8 0.82<br/> ]<br/> }</p><p>DEF INITVIEW Viewpoint{position 0 0 4 description "init_view"}<br/></p> |
|