--- In [email protected], "th_w@..." <th_w@...> wrote: > > --- 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> >
Sorry, there must be something wrong here. In Firefox, the red circle is shifting around as I expected, but not in Opera and Chromium. ------------------------------------ ----- 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/

