53 lines
1.4 KiB
Text
53 lines
1.4 KiB
Text
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>
|