2012-08-25 56 views
0

我有一個Java程序,通過JAXB輸出一個X3D文件。這是當前的輸出。X3D似乎只運行一半循環

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<X3D version="1.0" profile="Full"> 
    <head> 
     <meta name="Sim3DAnimator" content="jaxbtext.x3d"/> 
    </head> 
    <Scene> 
     <WorldInfo info="by Patrick R. Aquilone" title="Testing Simu 3D Animator"/> 
     <DirectionalLight ambientIntensity="1.0" intensity="1.0"/> 
     <Viewpoint orientation="0.0 0.0 0.0 90.0" position="0.0 10.0 100.0" description="SIM3D"/> 
     <Transform> 
      <Transform scale="1 1 1" translation="0.000000 0.000000 0.000000" DEF="person"> 
       <Transform rotation="0 1 0 0.000000"> 
        <Transform rotation="0 0 1 0.000000"> 
         <Transform rotation="1 0 0 0.000000"> 
          <Transform> 
           <MetadataString value="test"/> 
           <Transform scale="1 1 1" translation="0.000000 25.200000 0.000000"> 
            <Shape> 
             <Sphere radius="8.0"/> 
             <Appearance> 
              <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
             </Appearance> 
            </Shape> 
           </Transform> 
           <Transform rotation="0 0 1 1.570800" scale="1 1 1" translation="0.000000 13.200000 0.000000"> 
            <Shape> 
             <Cylinder height="16.0" radius="1.0"/> 
             <Appearance> 
              <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
             </Appearance> 
            </Shape> 
           </Transform> 
           <Transform scale="1 1 1" translation="0.000000 13.200000 0.000000"> 
            <Shape> 
             <Cylinder height="16.0" radius="1.0"/> 
             <Appearance> 
              <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
             </Appearance> 
            </Shape> 
           </Transform> 
           <Transform scale="1 1 1" translation="9.600000 3.000000 0.000000"> 
            <MetadataString value="test-right-arm"/> 
            <Transform translation="0.000000 10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 0.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Cylinder height="21.0" radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 -10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
           </Transform> 
           <Transform scale="1 1 1" translation="-9.600000 3.000000 0.000000"> 
            <MetadataString value="test-left-arm"/> 
            <Transform translation="0.000000 10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 0.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Cylinder height="21.0" radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 -10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
           </Transform> 
           <Transform scale="1 1 1" translation="5.000000 -24.000000 0.000000"> 
            <MetadataString value="test-right-leg"/> 
            <Transform translation="0.000000 10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 0.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Cylinder height="21.0" radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 -10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
           </Transform> 
           <Transform scale="1 1 1" translation="-5.000000 -24.000000 0.000000"> 
            <MetadataString value="test-left-leg"/> 
            <Transform translation="0.000000 10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 0.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Cylinder height="21.0" radius="2.5"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 -10.500000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="2.5"/> 
             </Shape> 
            </Transform> 
           </Transform> 
           <Transform scale="1 1 1" translation="0.000000 0.000000 0.000000"> 
            <MetadataString value="test-torso"/> 
            <Transform translation="0.000000 12.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="5.0"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 0.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Cylinder height="24.0" radius="5.0"/> 
             </Shape> 
            </Transform> 
            <Transform translation="0.000000 -12.000000 0.000000"> 
             <Shape> 
              <Appearance> 
               <Material ambientIntensity="0.5" diffuseColor="0.500000 0.500000 0.500000"/> 
              </Appearance> 
              <Sphere radius="5.0"/> 
             </Shape> 
            </Transform> 
           </Transform> 
          </Transform> 
         </Transform> 
        </Transform> 
       </Transform> 
       <PositionInterpolator keyValue=" 0 0 0 10 0 0 20 0 0 30 0 0 40 0 0 50 0 0 60 0 0 70 0 0 80 0 0 90 0 0 100 0 0 90 0 0 80 0 0 70 0 0 60 0 0 50 0 0 40 0 0 30 0 0 20 0 0 10 0 0" key=" 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19" DEF="person-position"/> 
       <TimeSensor cycleInterval="1.0" loop="true" DEF="person-time"/> 
       <ROUTE fromNode="person-time" fromField="fraction_changed" toNode="person-position" toField="set_fraction"/> 
       <ROUTE fromNode="person-position" fromField="value_changed" toNode="person" toField="set_translation"/> 
      </Transform> 
     </Transform> 
    </Scene> 
</X3D> 

我的問題是,你可以看到,插佔了20分,但是當它運行時,只有通過他們的一半運行,然後迅速回到開頭。我不明白爲什麼它在第10個時間間隔停止。我知道我錯過了什麼,但是什麼?

順便說一句,我是新的,所以你看到我可以修復的任何事情,繼續並讓我知道。

在此先感謝。

回答

0

fraction_changed 0和1之間輸出值的PositionInterpolator的關鍵具有開始從0到20。這意味着整數值,只有該第一(0)和第二(1)的值將被激活每當時間傳感器開始/結束。基本上你的變換將被翻譯5次到(0,0,0)和5次到(10,0,0)。

達到你想要什麼,你必須鍵陣列更改爲類似: 鍵[0 0.05 0.10 0.15 0.95 .... 1]

或路線人-了time.time到人-position.set_fraction。這將經歷所有關鍵值一次。

它應該這樣工作。