Mam zdefiniowany element SVG o szerokości i wysokości "297 mm" i "210 mm", bez widoku. Robię to, ponieważ chcę pracować wewnątrz rzutni A4, ale chcę tworzyć elementy w pikselach.Skalowanie obiektów SVG zdefiniowanych w pikselach do jednostek fizycznych?
W pewnym momencie muszę skalować obiekt zdefiniowany w pikselach, aby pasował do części strony A4. Na przykład, mogę mieć obiekt o szerokości 100 pikseli, który chcę skalować do 30 mm w poziomie.
Czy to możliwe? Myślę, że potrzebuję drugiego kontenera z nowym układem współrzędnych, ale nie mogę znaleźć żadnego sposobu, aby to zrobić.
EDIT
Wydaje się, że ja (lub SVG) został niezrozumiany co piksel jest. Zdałem sobie sprawę, że mogę ustawić linię na 100%, a następnie uzyskać jej rozmiar w pikselach z getBBox
, aby znaleźć wymagane skalowanie. Napisałem ten kod i prowadził ją na 2 klientów, jeden z monitorem 1280x1024 (80dpi) i jedno z 1680x1050 LCD (90dpi):
function getDotsPerInch() {
var hgroup, vgroup, hdpi, vdpi;
hgroup = svgDocument.createElementNS(svgNS, "g");
vgroup = svgDocument.createElementNS(svgNS, "g");
svgRoot.appendChild(hgroup);
svgRoot.appendChild(vgroup);
drawLine(hgroup, 0, 100, "100%", 100, "#202020", 1, 1);
drawLine(vgroup, 100, 0, 100, "100%", "#202020", 1, 1);
hdpi = hgroup.getBBox().width * 25.4/WIDTH;
vdpi = vgroup.getBBox().height * 25.4/HEIGHT;
drawText(hgroup, "DPI, horizontal: " + hdpi.toFixed(2), 100, 100);
drawText(hgroup, "DPI, vertical: " + vdpi.toFixed(2), 100, 120);
}
IE9, FF, Opera i Chrome są zgodni, że oba monitory Są one wyświetlane w pionie i poziomie (chociaż operacja jest nieco niedokładna), a Safari zgłasza 0 dpi na obu monitorach. Tak więc svg po prostu określił "piksele" jako "96dpi". wydaje się, że niektórzy szybcy Googling potwierdzają to, chociaż nie znalazłem nic ostatecznego, a większość trafień daje 90dpi, z 96dpi jako wariantem FF.
Dlaczego niektórzy uważają, że to wymaga zamknięcia? –
Wow - to pytanie ma rok, podnosi ważną kwestię dotyczącą definicji dpi dla SVG, jest wyraźnie związane z SVG i pokazuje pewne wysiłki badawcze. Mimo to 5 osób właśnie zdecydowało się zamknąć to zadanie jako nietypowe, a ktoś po prostu nie głosował. Czy ktoś chce wyjaśnić? – EML
A jeden z nich ma 16 lat i żaden z nich nie wydaje się być zainteresowany SVG ... – EML