5.3 補間による運動表現
著者:梅谷 武
語句:球面線形補間法
語句:球面線形補間法
球面線形補間法により、物体の運動を表現する例を示す。
作成:2010-07-27
更新:2011-03-08
更新:2011-03-08
並進運動と回転運動は独立して記述する。次の例は円周の四分の一を飛行機が旋回するもので、重心の並進運動は円運動、回転運動は始点と終点の姿勢を四元数で与え、slerpで補間したものである。
package.path = "std/?.lua" require( "Geometry" ) PI = 3.14159265358979 PI_180 = 3.14159265358979 / 180.0 q0 = Quaternion.new( EulerAngles.new( 180.0*PI_180, 0.0, 30.0*PI_180 ) ) q1 = Quaternion.new( EulerAngles.new( -90.0*PI_180, 0.0, 30.0*PI_180 ) ) Traj = {} for t = 0.0, 1.0, 0.02 do local s = PI / 2.0 table.insert( Traj, 5.0 * math.cos( s * t ) ) table.insert( Traj, 5.0 * math.sin( s * t ) ) table.insert( Traj, 0.0 ) local q = Slerp( q0, q1, t ) local e = EulerAngles.new( q ) table.insert( Traj, e.yaw / PI_180 ) table.insert( Traj, e.pit / PI_180 ) table.insert( Traj, e.rol / PI_180 ) table.insert( Traj, 0.0 ) end tnLoadObject( "z0", [[.\obj\zerosen.obj]] ) tnSetTrajectory( "z0", #Traj/7, Traj )
Published by SANENSYA Co.,Ltd.