--- In [email protected], Cameron McCormack <cam@...> wrote: > > David Dailey: > > Oh good! The center of mass (centroid or first central moment) is also a > > graphically relevant construct, so we should think about that too! Itâs > > easily scriptable for integrable curves (well, heck, I suppose they > > donât even need to be integrable* do they?) but declarative access to > > the centroid would be good for realistic rotation (even sans gravity). > > Yeah, I should've said that the percentages in transform-origin will be > the bounding box of the object. (There is still the issue of *which* > bounding box to use -- the geometry one that getBBox() provides, one > that include the stroke, markers, etc...) Centroids may also be useful, > but supporting bounding boxes is a good simple first step. >
Another problem I see is that during the animation the center of the bounding box may constantly be shifting. http://wwwpub.zih.tu-dresden.de/~s9783698/svg/bbRotate.svg <?xml version="1.0" encoding="UTF-8"?> <svg xmlns="http://www.w3.org/2000/svg" width="100%" height="100%" onload="init()"> <script type="text/ecmascript"> var polygon var polygonContainer var bboxCenterMarker var angle = 0 var angleIncrement = 5 var interval = 50 function init() { polygonContainer = document.getElementById('polygonContainer') polygon = polygonContainer.getElementsByTagName('polygon')[0] bboxCenterMarker = document.getElementById('bboxCenterMarker') animate() } function animate() { polygon.setAttribute('transform','rotate('+angle+')') angle += angleIncrement var bbox = polygonContainer.getBBox() bboxCenterMarker.setAttribute('cx',bbox.x + .5 * bbox.width) bboxCenterMarker.setAttribute('cy',bbox.y + .5 * bbox.height) window.setTimeout('animate()',interval) } </script> <g transform="translate(100,100)" id="polygonContainer"> <polygon points="-50,-20 50,-20 -30,20, -50,20" stroke="black" fill="none"/> <circle r="2" fill="green"/> <circle r="2" stroke="red" fill="none" id="bboxCenterMarker"/> </g> <text x="10" y="200">Green circle: Rotation center (initial bounding box center)</text> <text x="10" y="220">Red circle: Momentary bounding box center</text> </svg> ------------------------------------ ----- To unsubscribe send a message to: [email protected] -or- visit http://groups.yahoo.com/group/svg-developers and click "edit my membership" ----Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/svg-developers/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/svg-developers/join (Yahoo! ID required) <*> To change settings via email: [email protected] [email protected] <*> To unsubscribe from this group, send an email to: [email protected] <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/

