2012-08-25 2 views
0

JAXB를 통해 X3D 파일을 출력하는 Java 프로그램이 있습니다. 다음은 현재 출력입니다.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

는 0과 1 사이 출력 값 fraction_changed PositionInterpolator에 주요이 수단 0~20 시작 정수 값을 갖는 첫 번째 (0) 및 제 1 값이 활성화 할 때마다 TimeSensor 그 시작/끝. 기본적으로 변환은 (0, 0, 0)으로 5 번, (10, 0, 0)으로 5 번 변환됩니다. 키 [0 0.05 0.10 0.15 .... 0.95 1]

또는 경로 사람-로 time.time 사람 :

당신이 뭔가에 키의 배열을 변경해야 원하는 것을 달성하기 위해 -position.set_fraction. 이것은 모든 키 값을 한 번 거치게됩니다.

이렇게하면됩니다.

관련 문제