BLENDER_v230REND L1SRd RL SRscreenW ,  \ \ \ DATAW SDATAS3 W DATA3 S DATA S| 3 DATA| Sī DATAī S | DATA ST ī DATAT S DATA S T DATA S DATA, Tt 3 DATAt T , W DATA T t | W DATA TL ī DATAL T  | ī DATA Tܮ L DATAܮ T$ 3 T DATA$ Tl ܮ T DATAl T $ | DATA T l ī DATA T< DATA< T T DATA T̠ < DATA̠ T ī T DATA T̠ | DATA\ V W | ī dT \ DATAT E\ 333?DdCIzաD"DATA U ܷ OutputRender>DATA Ud RenderRender@>DATAd U< AnimRender>DATA< U d FormatRender>DATA U< ScriptlinksScript>DATA E 333? DlC2D((jCC(BDC??OBDATAx K  1>xz\DATA  @ 333? ?9>pp?9>"??9>p?p9>oL1@?%?0> q?p?A?v94H<@Aͳ[?q1>.?~BK2^ן*B+YA )@%? gN?AHM?9>pp?9>"?Q?SAd  B?=CxЄ= DATA DT 333? zC AzC A #< #<`jFzD OBDATATT G 333? LOAD TEXT FILEC:\yblender\rotation standard\script rotation standard_final.py DATAܳ VT ܰ  $ q?P?AHM > ̺ Դ Դ DATAԴ UTransform PropertiesView3d>"DATA  @ 333?ܳ ?9>pp?9>"??9>p?p9>oL1@?q?>F> q?p?ZO?v9M=<@A=?>8N?i0BI2^ן*@+YA )@q?P?AHM?9>pp?9>"?Q?SAd  B?=CxЄ=   DATAx K ܳ ( =DATA DĹ  333?ܳ zC AzC A #< #<`jFzD OBDATAĹ E̺ 333?ܳ DdCDv@CC(BDC??DATAT̺ GĹ 333?ܳ `l #Save AsT FILEC:\yblender\otation standard\rotations.blendstandard_final.py0@DATAT Vܳ $ L l %? gN?AHM   $ D 4 4 L L DATAL UTransform PropertiesView3d>"DATAx$ K̾ T $ =DATA ̾ @$ $ 333?T ?9>pp?9>"??9>p?p9>oL1@?%?0> q?p?A?v94H<@Aͳ[?q1>.?~BK2^ן*B+YA )@%? gN?AHM?9>pp?9>"?Q?SAd  B?=CxЄ= DATA$ D< ̾ 333?T zC AzC A #< #<`jFzD OBDATA< ED $ 333?T DdCDv@CC(BDC??DATATD G< 333?T LOAD TEXT FILEC:\yblender\rotation standard\script rotation standard_final.py SRd RL SRscreen.002 4 | D l \ DATA Sd DATAd S DATA S d DATA S< DATA< S DATA S < DATA S DATA S\ DATA\ S  xDATA S \ xDATA S4 xDATA4 S DATA| T d DATA T | DATA TT < DATAT T DATA T T < DATA T, d DATA, Tt  DATAt T ,  DATA T t < \ DATA TL \ DATAL T   DATA T L DATA T$ \ DATA$ Tl \ DATAl T $ DATA T l 4 DATA TD  4 DATAD T 4 DATA V < %d DATA E 333?DdCIzաDo?uub d 4 DATA F 333?zCAzCAbb A@FB= A DATA  @4  333?????????8=i>o?fffAD&@??fffAd  B? #<CDATAT4 G 333?AVE TARGA/t1.blend9DATA Vl 4  8=H>o?{{R d DATA F 333?zCAzCA1||1 A@FB= A DATA  @ 333?????????8=H>o?fffA*@??fffAd  B? #<C>>DATAT G 333?AVE TARGA/t1.blend9DATAl V \ 4 8=>o?{{Rdd DATAd D| 333?B̽̌?B̽̌?RR #< #<`jFzD SQB̽̌?DATA | @ d 333?????????8=>o?fffA@??fffAd  B? #<CzzDATAT G| 333?OAD FILE/9SC(\ >SC1d dd??< d@??_@??////render///#DX \X DATA 8  < DATA 8  d DATAX  DATA\X  OBd 5< OBCamera oL1@???a???9>p?p9>oL1@????????(?d??)d??>)d????OB< 5d OBPlane ??????????????w?w?DOBd?? #=?>=@???ME 2MEPlane\I ,V T% 0505w?|k?<ѣ?DATAPT% /JϾ>4ѣ?Jm6w?}k?b EѣJm6w|k/Jm6DATA * CAl CACamera=B?A B?TXd  TXrquaternions_pythi$ ) d d d  DATA4$ C:\yblender\quaternions\quaternions_python_final.pyDATA  4FREEDATA   FREEDATA d U 656 FDATAd   W FREEDATA  d 96 NDATA < 88 pDATA<  T 32 qDATA  < \W FREEDATA  nneeDATA \ *nneeDATA\   L FREEDATA  \  FREEDATA 4 88 tDATA4 | 40 vDATA|  4  FREEDATA  | L FREEDATA T FREEDATAT  FREEDATA  T $ FREEDATA , l FREEDATA, t FREEDATAt  , FREEDATA  t 4 FREEDATA L | FREEDATAL   FREEDATA  L  FREEDATA $ T FREEDATA$ l  FREEDATAl  $  VFREEDATA  l \ VFREEDATA D  VFREEDATAD  l FREEDATA  D  FREEDATA   FREEDATA d D FREEDATAd  |  DATA8 # rotation autour d'un axe a l'aide des quaternions,\}DATA # t-->vitesse 5DATA8U # rotation autour de l'axe z de l'objet richie 2002DATAW  32DATA import Blender9DATA from Blender import NMeshDATAT from math import *qDATA\W  32DATA u=1 # DATA, v=0 # coordonnees de l'axe de rotationDATA L w=0 # DATA  32DATA maxframe=100DATA t=0.1DATA DATAL me=NMesh.GetRaw('Plane')1DATA  32DATA xq=sin(t/2)*u DATA$ yq=sin(t/2)*v DATAl zq=sin(t/2)*w DATA wq=cos(t/2)DATA DATA 4 xq2=xq**2 DATA | yq2=yq**2 DATA zq2=zq**2DATA  wq2=wq**2\|DATAT DATA for v in me.verts:EDATAX  f=(wq2+xq2-yq2-zq2)*v.co[0] + (2*xq*yq+2*wq*zq)*v.co[1] +(2*xq*zq-2*wq*yq)*v.co[2]DATAX\  g=(2*xq*yq-2*wq*zq)*v.co[0] + (wq2-xq2+yq2-zq2)*v.co[1] +(2*yq*zq+2*wq*xq)*v.co[2]DATAX  h=(2*xq*zq+2*wq*yq)*v.co[0] + (2*yq*zq-2*wq*xq)*v.co[1] +(wq2-xq2-yq2+zq2)*v.co[2]eDATAl  v.co[0]=f\|DATA  v.co[1]=g\|DATA  v.co[2]=h\|DATAD DATA| NMesh.PutRaw(me,'Plane')1'TXd  TXrscript rotation d ! D d d | QDATA@ C:\yblender\rotation standard\script rotation standard_final.pyDATA d  DFREEDATAd   68 dDATA  d L 84 eDATA <  56 nDATA<   96 NDATA  <  88 pDATA  \ 48 qDATA \  52 tDATA\    88 tDATA  \  64 tDATA 4 < 84 uDATA4 |  40 vDATA|  4  FREEDATA   |  )FREEDATA  T l FREEDATAT    DATA  T  DATA ,  $ FREEDATA, t  l FREEDATAt  ,  FREEDATA  t  FREEDATA L  4 IFREEDATAL    IFREEDATA  L D IFREEDATA $   FREEDATA$ l   FREEDATAl  $ \ FREEDATA  l  FREEDATA D   FREEDATAD  $ FREEDATAH # rotation autour d'un axe quelconque avec matrice rotation standard}DATA # t-->vitesse richie 2002DATAL  32DATA import Blender3DATA from Blender import *ioDATA from math import *qDATA\  DATA x=linkEDATA tet=0.1DATA DATA< me=NMesh.GetRaw('Plane')1'DATA DATA vx=0 #DATA, vy=0 # coordonnees de l'axe de rotationDATAl vz=1 #DATA DATA  cd=cos(tet)DATA $ s=sin(tet)DATAl t=1-cos(tet)DATA |DATA for v in me.verts:EDATAL4  f=(t*vx**2+cd)*v.co[0] + (t*vx*vy+s*vz)*v.co[1] + (t*vx*vz-s*vy)*v.co[2]xDATAL  g=(t*vx*vy-s*vz)*v.co[0] + (t*vy**2+cd)*v.co[1] + (t*vy*vz+s*vx)*v.co[2]alDATALD  h=(t*vx*vz+s*vy)*v.co[0] + (t*vy*vz-s*vx)*v.co[1] + (t*vz**2+cd)*v.co[2]DATA  for c in v.co:DATA   v.co[0]=fDATA \  v.co[1]=gDATA   v.co[2]=hDATA  DATA$ NMesh.PutRaw(me,'Plane')1GLOB\WL DNA1K$p SDNANAMEZ*next*prev*first*lastxyzwxminxmaxyminymax*newid*libname[24]usflagpadid*idblock*filedataname[160]totcurvecurblocktypeshowkeypostotelemtypert*dataname[32]sliderminslidermax*refkeyelemstr[32]elemsizecurvalblock*ipo*fromtotkeyslurphactkey**scripts*flagactscripttotscript*linelenblen*nameflagsnlineslines*curl*sellcurcselc*undo_bufundo_posundo_len*compiledsizeseekdrawzoomholdclipstaclipendnetstanetendlensdrawsizehololenhololen1scriptlink*anim*ibuf*mipmap[10]oklastframelastqualitytpageflagtotbindxrepyreptwstatwendbindcode*repbind*packedfilelastupdateanimspeedreserved1texcomaptomaptonegblendtype*object*texprojxprojyprojzmappingofs[3]size[3]texflagcolormodelrgbkdef_varcolfacnorfacvarfac*handle*pname*stnamesstypesvars*varstr*result*cfradata[32](*doit)()(*callback)()versionaipotypedata[16]*ima*cube[6]imat[4][4]stypenotlaycuberesdepthrecalclastsizepad1noisesizeturbulbrightcontrastrfacgfacbfacfiltersizenoisedepthnoisetypeimaflagcropxmincropymincropxmaxcropymaxxrepeatyrepeatextendframesoffsetsfrafie_ima*nor*plugin*coba*envfradur[4][2]modetotexenergydistspotsizespotblendhaintatt1att2bufsizesampshadspotsizebiassofttexactshadhalostep*mtex[8]layspecrspecgspecbmirrmirgmirbambrambbambgambemitangspectraalpharefspeczoffsaddkfacharseed1seed2mode2flarecstarclinecringchasizeflaresizesubsizeflareboostrgbselpr_typeseptexpr_backpr_lampdiff_shaderspec_shaderroughnessrefracparam[4]*renfrictionfhreflectfhdistxyfrictdynamodename[256]scale*bbi1j1k1i2j2k2selcolexpxexpyexpzradrad2smaxrad2*mat*imatelemsdisp**mattotcolloc[3]rot[3]wiresizerendersizethreshvec[3][3]alfas[3][2]h1h2f1f2f3hidevec[4]s[2]mat_nrpntsupntsvresoluresolvorderuordervflaguflagv*knotsu*knotsv*bp*beztnurb*bevobj*textoncurve*path*keybev*orcopathlenbevresolwidthext1ext2spacemodespacinglinedistshearfsizexofyof*strfamily[24]*vfontmaxrcttotrctadrcodevartypetotvertipoextrapbitmaskv1v2v3v4punoedcode*tpageuv[4][2]col[4]transptiledef_nrweight*dwtotweightco[3]no[3]co[2]effect*mface*dface*tface*mvert*dvert*mcol*msticky*texcomesh*oc*sumohandletotfacesmoothreshsubdivsubdivrreserved2reserved3cubemapsizertfpntswtypeutypevtypew*defpartypepar1par2par3parsubstr[32]*pardata*parent*track*action*pose*activeconconstraintChannelsnetworkdefbasedloc[3]orig[3]dsize[3]drot[3]quat[4]dquat[4]obmat[4][4]parentinv[4][4]colbitstransflagipoflagtrackflagupflagipowinscaflagscavisflagboundtypedupondupoffdupstadupendsfctimemassdampinginertiaformfactordummy_1rdampingsizefacdtdtxactcolpropsensorscontrollersactuatorsbbsize[3]dfrasactdefgameflaggameflag2anisotropicFriction[3]constraintsnlastripsmistypehorrhorghorbhorkzenrzengzenbzenkambkfastcolexposuregravityactivityBoxRadiusskytypemisimiststamistdistmisthistarrstargstarbstarkstarsizestarmindiststardiststarcolnoisedofstadofenddofmindofmaxhemiresmaxiterdrawtypesubshootpsubshootenodelimmaxsublamppamapamielmaelmimaxnodeconvergenceradfacgammasxsy*lpFormat*lpParmscbFormatcbParmsfccTypefccHandlerdwKeyFrameEverydwQualitydwBytesPerSeconddwFlagsdwInterleaveEveryavicodecname[128]*cdParms*padcdSizepad2qtcodecname[128]mixratemainpad[3]*avicodecdata*qtcodecdatacfraefraimagesframaptoframelenblurfacedgeRedgeGedgeBfullscreenxplayyplayfreqplayattribrt1rt2stereomodemaximsizexschyschxaspyaspxpartsypartssafetyborderwinposplanesimtypebufflagqualityscemodealphamodedogammaosafrs_secedgeintsame_mat_reduxpad_3[3]postmulpostgammapostaddpostigammabackbuf[160]pic[160]ftype[160]col[3]pad3*camera*world*setbase*basact*groupcursor[3]*fcam*ed*radioframingaudiozoomblendximyim*rectspacetypeblockscale*areablockhandler[8]viewmat[4][4]viewinv[4][4]persmat[4][4]persinv[4][4]winmat1[4][4]viewmat1[4][4]viewquat[4]perspview*bgpic*localvdlocalviewlayactscenelockaroundcamzoomgridnearfarmxmymxomyogridlinesviewbutmodeselectpad4pad5pad6verthormaskmin[2]max[2]minzoommaxzoomscrollkeeptotkeepaspectkeepzoomoldwinxoldwinyrowbutv2d*editipoipokeytotipopinbutofschannelmenunrlockmedian[3]cursenscuractaligntabomainbmainbo*lockpointexnrtexfromshowgrouprectxrectycurymodeltypescriptblockre_aligntab[7]*filelisttotfiletitle[24]dir[160]file[80]ofssortmaxnamelencollums*libfiledataretvalmenuact(*returnfunc)()*menupoopsvisiflag*imageimanrcurtile*texttopviewlinesfont_idlheightleftshowlinenrspix_per_linetxtscrolltxtbar*py_draw*py_event*py_button*py_globaldicttitle[28]fasesubfasemouse_move_redrawimafasedirslidirsli_linesdirsli_sxdirsli_eydirsli_exdirsli_himaslifileselmenuitemimasli_sximasli_eyimasli_eximasli_hdssxdssydsexdseydesxdesydeexdeeyfssxfssyfsexfseydsdhfsdhfesxfesyfeexfeeyinfsxinfsyinfexinfeydnsxdnsydnwdnhfnsxfnsyfnwfnhfole[128]dor[128]file[128]dir[128]*firstdir*firstfiletopdirtotaldirshilitetopfiletotalfilesimage_sliderslider_heightslider_spacetopimatotalimacurimaxcurimay*first_sel_ima*hilite_imatotal_selectedima_redraw*cmap*arg1neutral[4]action[4]setting[4]setting1[4]setting2[4]num[4]textfield[4]popup[4]text[4]text_hi[4]menu_back[4]menu_item[4]menu_hilite[4]menu_text[4]menu_text_hi[4]but_drawtypeback[4]header[4]panel[4]shade1[4]shade2[4]hilite[4]grid[4]wire[4]select[4]active[4]transform[4]vertex[4]vertex_select[4]edge[4]edge_select[4]face[4]face_select[4]vertex_sizetuitbutstv3dtfiletipotinfotsndtacttnlatseqtimatimaseltexttoopsspec[4]dupflagsavetimetempdir[160]fontdir[160]renderdir[160]textudir[160]plugtexdir[160]plugseqdir[160]pythondir[160]sounddir[160]versionsvrmlflaggameflagswheellinescrolluiflaglanguageuserprefconsole_bufferconsole_outmixbufsizefontsizeencodingtransoptsmenuthreshold1menuthreshold2fontname[64]themesundostepspad0tb_leftmousetb_rightmouselight[3]vertbaseedgebaseareabase*scenestartxendxstartyendysizexsizeyscenenrscreennrfullmainwinwinakt*newvvec*v1*v2panelname[64]tabname[64]ofsxofsyactivecontrolold_ofsxold_ofsy*paneltab*v3*v4*fullwinmat[4][4]headrctwinrctheadwinwinheadertypebutspacetypewinxwinyhead_swaphead_equalwin_swapwin_equalheadbutlenheadbutofscursorspacedatauiblockspanels*curscreendisplaymodefileflagsglobalfname[40]*se1*se2*se3nrdone*stripdatadir[80]orxoryname[80]*newseqstartstartofsendofsstartstillendstillmachinestartdispenddispmulhandsize*strip*curelemfacf0facf1*seq1*seq2*seq3seqbase*soundlevelpancurpos*seqbasepmetastackbuttypestaendlifetimetotpartseednormfacobfacrandfactexfacrandlifeforce[3]dampnablavectsizedefvec[3]mult[4]life[4]child[4]mat[4]texmapcurmultstaticstep*keysheightnarrowspeedminfactimeoffs*obpremat[4][4]postmat[4][4]vec[3]faclenoalphaoeff[2]iterlastfralimbbaseeff[3]effg[3]effn[3]memslowtotytotxxyconstrainttotdefdef_scrolllimb_scrolldxdy*idlinkotypedataold*poin*oldpoinresetdistlastval*makeyqualqual2targetName[32]toggleName[32]value[32]maxvalue[32]materialName[32]damptimeranglerangeaxisdelaypropname[32]matname[32]axisflag*fromObjectsubject[32]body[32]pulsefreqtotlinks**linksinvertfreq2str[128]*mynewinputstotslinks**slinksvalvalotime*actblendinprioritystridelengthstrideaxissndnrmakecopycopymadepad[1]trackvolume*melinVelocity[3]localflagforceloc[3]forcerot[3]linearvelocity[3]angularvelocity[3]addedlinearvelocity[3]anotherpad[4]butstabutendminmaxvisifacminloc[3]maxloc[3]minrot[3]maxrot[3]distributionint_arg_1int_arg_2float_arg_1float_arg_2toPropName[32]*toObjectbodyTypefilename[64]loadaniname[64]goaccellerationmaxspeedmaxrotspeedmaxtiltspeedrotdamptiltdampspeeddamp*sample*stream*newpackedfile*snd_soundpanningattenuationpitchmin_gainmax_gaindistancestreamlenloopstartloopendchannelshighpriopad[10]gaindopplerfactordopplervelocitynumsoundsblendernumsoundsgameengine*gkeypadfokeygobjectgkey*activechildbaserollhead[3]tail[3]parmat[4][4]defmat[4][4]irestmat[4][4]posemat[4][4]boneclassfiller1filler2filler3bonebasechainbaseres1res2res3chanbase*achan*pchanactnrname[30]enforceoffset[3]orient[3]roll[3]*tartoleranceiterationssubtarget[32]cacheeff[3]cachemat[4][4]lockflagfollowflagzminzmaxactstartactendstridelenrepeatblendoutTYPEcharucharshortushortintlongulongfloatdoublevoidLinkListBasevec2svec2ivec2fvec2dvec3ivec3fvec3dvec4ivec4fvec4drctirctfIDLibraryFileDataIpoKeyBlockKeyScriptLinkTextLineTextPackedFileCameraImageanimImBufMTexObjectTexPluginTexCBDataColorBandEnvMapLampWaveMaterialVFontVFontDataMetaElemBoundBoxMetaBallBezTripleBPointNurbCurvePathIpoCurveMFaceMFaceIntTFaceMDeformWeightBoneMDeformVertMVertMColMStickyMeshOcInfoLatticebDeformGroupbActionbPosebConstraintChannelWorldRadioBaseAviCodecDataQuicktimeCodecDataAudioDataRenderDataGameFramingSceneGroupFreeCameraBGpicView3DSpaceLinkScrAreaView2DSpaceInfoSpaceIpoSpaceButsSpaceSeqSpaceFiledirentryBlendHandleSpaceOopsSpaceImageSpaceNlaSpaceTextSpaceImaSelImaDirOneSelectableImaThemeUIThemeSpacebThemeSolidLightUserDefbScreenScrVertScrEdgePanelFileGlobalStripElemStripPluginSeqSequencebSoundEditingEffectBuildEffPartEffParticleWaveEffDeformLimbIkaOopsbPropertybNearSensorbMouseSensorbTouchSensorbKeyboardSensorbPropertySensorbCollisionSensorbRadarSensorbRandomSensorbRaySensorbMessageSensorbSensorbControllerbExpressionContbPythonContbActuatorbAddObjectActuatorbActionActuatorbSoundActuatorbCDActuatorbEditObjectActuatorbSceneActuatorbPropertyActuatorbObjectActuatorbIpoActuatorbCameraActuatorbConstraintActuatorbGroupActuatorbRandomActuatorbMessageActuatorbGameActuatorbVisibilityActuatorbSamplebSoundListenerSpaceSoundGroupKeyObjectKeyGroupObjectbArmaturebPoseChannelbActionChannelSpaceActionbConstraintbKinematicConstraintbTrackToConstraintbRotateLikeConstraintbLocateLikeConstraintbActionConstraintbLockTrackConstraintbFollowPathConstraintbRotationConstraintbActionStripTLEN  0PDtdl(PP4(@d<0P <  L,@,((D($ $x$Tx@Px8(d@l 8(,@0,HhH,(lDLP< <@Lx0848l@0pP<`|,,,8,8STRC                    !" #$%& '()*+,-./0123 456 789:;<=> ?!@A5 "BCDEFGHIJK(L#$M%N%OPQRSTUVWXYZ![\]^&_`ab'c(defghijklmnopqrst) uvwxy z{|}~ *mno+*,'c##DEPQ(#2s(#)+,-lmnopDE&(L.(/>lmno_`&(/L01![2223243 (/kj5      6 777658&3  ' '!(9"#/ $%jk&'()*27+,-./012304:::6556789:;  <&;=>?@AB<=>?@AB= CDEFG>HI?@>JK^ALMBmnoCND"3 O (#/ P Q RAS@TBUCVDW%EX Y9Zkj[\]^^_`aF bcde6f(#GGG 'Oghijk l'm'n(9"3HoIp Jq r O s t/uvjwxyz{|}~L     YE  K+l(&LLMMM'cN  O  PQ8NO@     RS'KS# MTU L! YR"QmP#LV #(d01@$%&'(W-XX)*Y+,-./012345'V6W789:;<H=>?i@ABCDEFGHIZJKLMNOPQRSTUVXXX)*Y+,[XX)*Y+,\XX)*Y+,WZX Y Z()[\]^_`a]XX)*Y+,bcdeZXf_\g hijklm(nopqr^ XX)*Y+,ZXf$_XX)*Y+,`stuvwxyz{a|}~ b XX)*Y+,ZX \ hcXX)*Y+,ZX#$\01`d XX)*Y+,_`ZXeXX)*Y+, 5_    fQXX)*Y+@Agghh%  ijkkk ijjjjjjjjjjj j j lE m!  !"#$%& '()*+l,n - . /S0123456789:;oooo< =pppo>o?qqq@ABC56DEFGqHYYYo>o?oIoJnKL6MNOPQ)RSTUVWXYZ[ \ ] ^r _`absc%NsdsesfPgt tt2hsijklu m uvy z|} ~ v%vvvn 2opqrstuvwxtysz(S0$M{|uv}v~v wx   yyyzzz2{{{*|}}}13(~ 'ghij 2g ('mhij~f        /     ' '  H' H ^^_ w 'D S0' ' ux  '  T '      'U w ![! (5 !"#$%&'()*XX)Y+ZXw01` +ghij'm'n(uvjwxyz{|~,' -T . /0????m 1 234Iujwyz{56789:;< = >?@A  jy{ ^I B( r ^H BCD XX)Y+ZXHo\^E`JJJ(F (^FGHIJ'KLMNO^P'K^^N'K^N'K^N'KoHN'KQN'KR   ST^(HoUVWXYENDB