animate 3d plot with some further requirements in mathematica -


i posted @ this post before, still not solve following problem completely. example:

{pa, pb, pc, pd} = {{0, 0, sqrt[61/3]}, {sqrt[7], 4*sqrt[2/3], 0}, {0, -5*sqrt[2/3], 0}, {-sqrt[71], 4*sqrt[2/3], 0}}; axis={1,0,0};pt={0,1,0}; plotpolygon[{a_, b_, c_}] := {opacity[.4], polygon[{a, b, c}]}; graph=graphics3d[{plotpolygon[{pa, pb, pc}], plotpolygon[{pa, pb, pd}],              plotpolygon[{pb, pc, pd}], plotpolygon[{pa, pc, pd}]},              axes -> true, axesorigin->pt]; animate[graph/.gg : graphics3d[___] :> rotate[gg, theta, axis], {theta, 0., 2.*pi}] 

enter image description here

i want rotate along axis axis={1,0,0} passes point pt={0,1,0}. don't know how specify point information. rotation animation seems chaotic in sense expect @ least 1 point (in case, origin?) not rotating.

you need first change origin of vertices of polygon, rotate, , translate back. can hand

(rotationmatrix[theta,axis].(#-pt) + pt)& /@ {pa, pb, pc, pd} 

or, can combine transformations using composition

composition[  affinetransform[{rotationmatrix[theta,axis],pt}],translationtransform[-pt] ] /@ {pa, pb, pc, pd} 

or, can take previous composition , apply directly graphics object

geometrictransformation[ <graphics>, composition[ ... ]] 

this documentation gives thorough list of can done.

edit: here's working animation script

animate[   graph /. graphics3d[prims__, opts : optionspattern[]] :>      graphics3d[       geometrictransformation[prims,         composition[           affinetransform[{rotationmatrix[theta, axis], pt}],           translationtransform[-pt]         ]       ],       opts     ],    {theta, 0., 2.*pi} ] 

there's couple of things note here. first, geometrictransformation appears work on primitives themselves, had split out primitives options in graphics3d via rule graphics3d[prims__, opts : optionspattern[]]. also, transformation needs within animate use local version of theta.


Comments

Popular posts from this blog

c# - How to set Z index when using WPF DrawingContext? -

razor - Is this a bug in WebMatrix PageData? -

visual c++ - Using relative values in array sorting ( asm ) -