chenbo007 / svg-edit

Automatically exported from code.google.com/p/svg-edit
0 stars 0 forks source link

Rotate objects #42

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Add ability to rotate objects

Original issue reported on code.google.com by rusn...@gmail.com on 23 Jun 2009 at 7:49

GoogleCodeExporter commented 9 years ago
What do folks think about the rotate interface used here? 
http://www.randomfractals.com/lab/miniShapeDesigner/miniShapeDesigner.html#

Original comment by codedr...@gmail.com on 14 Aug 2009 at 2:53

GoogleCodeExporter commented 9 years ago
Current proposal is to put a rotation spinner in the select context panel (next 
to
the opacity pull-down) that controls the rotation of the selected item.  This 
would
rotate the object around either its center (harder) or top-left (easier).

The selected boxes should always be axis-aligned and should not rotate.

Original comment by codedr...@gmail.com on 14 Aug 2009 at 3:04

GoogleCodeExporter commented 9 years ago
1) put a spinner that controls rotation around selected object's center into the
selected contextual tool panel (not the multi-select one), initially populated 
with
zero.  Spinner can allow integers for now.  Spinner allows values from between 
-359
and 359.

2) any shape/text element can now have a transform on it (so whitelist the 
transform
attribute for those elements).  The transform will be of the form:
rotate(angle,cx,cy) (see 
http://www.w3.org/TR/SVG11/coords.html#TransformAttribute )

3) upon selecting an element, must get the transform and determine the amount of
rotation that this element has and update the spinner box with that angle. 
Question:
is it more intuitive to think of positive angles as a clockwise rotation?

4) upon changing the rotation value, update the transform attribute with the
corresponding rotate(angle,cx,cy).  cx,cy is determined from getting the 
midpoints of
the bbox dimensions and then adding the top-left coordinates

5) while dragging an element, this temporarily changes the value of the 
transform
attribute (translation).  Must now account for the fact that the element could 
also
be rotated.  If dragging dx,dy I think the transform attribute would be
transform="translate(dx,dy) rotate(angle,cx,cy)"

6) while resizing an element, this temporarily changes the value of the 
transform
attribute (scale).  Must now account for the fact that the element could also be
rotated.  If resized by a factor of sx,sy I think the transform attribute would 
be
transform="scale(sx,sy) rotate(angle,cx,cy)"

Original comment by codedr...@gmail.com on 14 Aug 2009 at 3:24

GoogleCodeExporter commented 9 years ago

Original comment by codedr...@gmail.com on 14 Aug 2009 at 3:24

GoogleCodeExporter commented 9 years ago
r391 now has a spinner box that controls the rotation angle of any shape.  The
bounding box adjusts when the shape is rotated.  However, resizing a rotated 
shape
does not work properly (the shape is not properly positioned while resizing, but
seems ok once you release the mouse)

Original comment by codedr...@gmail.com on 16 Aug 2009 at 6:03

GoogleCodeExporter commented 9 years ago
Fixed in r392.  Subsequent problems should be raised as new defects.

Original comment by codedr...@gmail.com on 17 Aug 2009 at 3:12