diff options
Diffstat (limited to 'doc/coordinates.txt')
-rw-r--r-- | doc/coordinates.txt | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/coordinates.txt b/doc/coordinates.txt new file mode 100644 index 0000000..ad1acc1 --- /dev/null +++ b/doc/coordinates.txt @@ -0,0 +1,53 @@ +Please note that the behavior documented here (from Sodipodi) should be considered a bug. + +Inkscape should switch to the native SVG coordinate system. + +-mental + +Coordinate systems used by sodipodi + +1. Desktop coordinates + +Are the base coordinate system of all editing, UI etc. +i.e. the ones user is directly seeing (maybe some time +we'll make this configurable). + +0,0 is at lower-left +X grows to the right +Y grows upwards +Only valid units are real-world ones (mm, cm...) - i.e. +there is no such unit as pixel etc. +If printed, 1 desktop mm should be 1mm on paper + +2. Document coordinates + +As we all know, SVG Y grows downwards. So document is +placed at 0,HEIGHT, mirrored vertically, where HEIGHT +is viewport height in desktop coordinates. +Moreover SVG coordinate space is scaled by 0.8, so +1mm in SVG space equals 1mm in desktop space. + +The full matrix looks like: + +[ 0.8 0.0 0.0 ] +[ 0.0 -0.8 HEIGHT ] + +Where height equals SVG viewport height in real units +i.e. if viewport is 210mmx297mm HEIGHT is also 297mm. + +Document coordinates are stored in desktop object, +as doc2dt[] matrix, and not directly accessible to +document itself. I.e. document renders it just as any +normal SVG viewer should do. + +Technically SVG placement is achieved by specifying +doc2dt transform to drawing parent canvas group. + +3. user coordinates + +These are as specified by SVG spec. +1 px == 1 user unit +1 pt == 1.25 px +etc. + +31/08/2002 Lauris Kaplinski <lauris@kaplinski.com> |