ThinkGeo.com    |     Documentation    |     Premium Support

Rotation one more time

Hi..


Rotating a base object from 0 to 360 baseShape.Rotate(baseShape.GetCenterPoint(), rotate); is rotating something counter clockwise. Correct? 


Its become obvious that I will need to have the current rotation of the base shape.  Over time there seems to be an error in the rotation of some of the shapes but without the actualy rotational values of the shape I cant even debug it. I kept track of the rotation myself and it doesnt seem to match the visual apperance of the shape on the screen. The confusion comes in that some do match. 


For me what would be very helpful is if the internal base shape kept the original shape and all translation operations done from that. This way you can allow for delta changes as well as absolute translations and have the actual rotation and positional information available. Just a suggestion for the box. 


We get realtime data with absolute information. I keep track of it and create deltas to hand to Rotate as well as TranslateByOffset but for some reason after a period of time the rotation is off only on some objects. With a realtime feed you have no idea how hard that is to debug. And even though my internal structures all look great I have no idea what ThinkGeo's internal baseshape function has for rotation. When you are talking about being off 15degree's after hundreds of itterations its tough to find the issue.   I am adding more debug code to see if I can figure this out but currently could use a better idea. The most helpful would be the current rotation value the base shape. then I could trigger to debug when my code varied from the internal base shape code. 


Anyway hoping that project falls to figure this out falls out of the sky soon. 



FYI I think I found my bug but what a monster. It had a to do with extra packets tween updates.  
 Anyway be nice to simplify this code a bit.

Bob, 
  
 Thanks for your updates on this post; I am glad you found this bug, thanks for your sharing. 
  
 Any more questions just feel free to let me know. 
  
 Yale 


Bob, 
  
   Do you still think it would be helpful for us to write a routine to compare a unrotated to a rotated shape and let you know the rotation? 
  
 David

David the problem is that the shape is not only rotated but translated as well. Is it still possible to do this?  


Bob, 
  
   I think so.  They key, in my mind, is to keep the center point fixed.  Don’t use the shape.GetCenterPoint() directly each time.  First get the center point and then use that over and over for an anchor as you rotate.  Don’t get the new center point as it will translate the shape a bit and get it out of whack.  If the shape actually moves, like a car etc, then things get more tricky.  I would remove the rotation based on the fixed center point.  Move the shape and then re-apply the rotation.  i think this could be encapsulated in a shape where we override a few methods. 
  
 David

Hi,


Is there a way to move/rotate shapes and other objects added on the map while rotating the projection? if yes, could you provide some sample code?


Regards


Lino



Lino, 
  
 Thanks for you input and question. 
  
 I am sorry I am not exactly sure the requirement as you are talking. The rotation projection will apply for all the features in the FeatureSource. While when you calculate the rotation and passed in specified features, only those specified features will be rotated. These two steps should be separate. 
  
 Any more questions just feel free to let me know. 
  
 Thanks. 
  
 Yale 


That's done and thanks a lot Yale! 



Do you have any update on that sample application which I uploaded under ticket no: 2797 



Thanks 

Lino



Lino, 
  
 Thanks for letting me know your status. 
  
 I just get that ticket today, I will try to recreate it and solve it as soon as possible. 
  
 Thanks. 
  
 Yale