svg - Inkscape rotation unexpectedly modifies rectangle coordinates

26
2014-04
  • user1644430

    I use Inkscape to create levels for my game. My problem is: I create rectangle and when I want to rotate it, it is changing the (x,y) position of the rectangle.

    Here is a video of the coordinates changing in the object properties dialogue box. Why is this happening and how to fix it?

  • Answers
  • Wrzlprmft

    The coordinates of an object is the lower left corner its bounding box (the smallest rectangle with edges parallel to the coordinate axes that contains the object). This bounding box is displayed in dashed lines and in your video you can see, how (and why) it changes when you rotate the square. If you rotate a square by a multiple of 90°, its coordinates do not change, since the bounding box is unaffected.

  • user2159904

    that may because of the point of origin of the object set to left lower corner instead of its center, try if converting the object to a path helps


  • Related Question

    import - Inkscape: what are "line" objects?
  • Peter Mortensen

    What is a "line" object in Inkscape? Drawing lines in Inkscape is by using the tool "Draw Bezier curves and straight lines (Shift+F6)". This creates objects of another type, "path".

    Using Inkscape: is there a way to convert an object of type "line" into an object of the more general type "path"?

    I have imported a drawing (mostly lines, rectangles and text) that has been through Adobe Illustrator: originally made in Inkscape, imported into Illustrator, edited, saved from Illustrator as SVG, imported into Inkscape.

    Sample from the imported SVG file:

    <path
       id="path5855"
       stroke="#000000"
       d="  M320.198,275.935" />
    
    <line
       fill="none"
       stroke="#000000"
       x1="348.553"
       y1="45.097"
       x2="348.553"
       y2="185.346"
       id="line3368" />
    

    Update 1: I have inspected the original XML (SVG) file from 2006 and it does not contain any "line" XML tags. Thus it must be a crime of Adobe Illustrator.

    When a line is selected in this imported SVG file the bottom panel displays: "Line in root. Click selection to toggle scale/rotation handles.".

    When a line is selected that was drawn in Inkscape the bottom panel displays: "Path (2 nodes) in Layer 1. Click selection to toggle scale/rotation handles."

    What is the difference between "line" and "path"?

    Is "line" some kind of read-only/non-editable object?


    A generic term like "line" is not easy to use in search, but I have now found the definitions for "line" and "path":

    SVG line: http://www.w3schools.com/svg/svg_line.asp
    
    SVG path: http://www.w3schools.com/svg/svg_path.asp
    

    Platform: Inkscape v0.46 (2008-03-10), Windows XP 64 bit, 8 GB RAM.


  • Related Answers
  • Ludwig Weinzierl

    A line is just what it says, a straight line. A path is more versatile and can represent almost any curve.

    You can always convert a line into a path, but not vice versa in the general case. In Inkscape use the menu item Path/Object to Path or the keyboard shortcut Shift+Ctrl+C.

    You can't edit nodes on line objects because a line object has just start and endpoint, but no nodes.

    As a path can also be a straight line Inkscape doesn't bother to create line elements. It always creates path elements. If your SVG file contains line elements Inkscape can read them and you can manipulate them.

  • Jared Updike

    Inkscape is built around SVG:

    http://www.w3.org/TR/SVG11/

    (although Inkscape supports more effects and probably more features than most browsers, IIRC, YMMV)

    Wikipedia's SVG entry says that although a Path is very general (and I remember from experience can represent line(s) as well as splines), there are Line objects as a basic shapes.

    Perhaps you can load the .svg file in a text editor (if you are so inclined) and inspect the SVG xml code to determine how it is representing the data.