Я создаю изображение с помощью raphael, и генерируемый им SVG for paper.text()
добавляет <tspan dy="number">
, где «число» — это число, основанное на размере шрифта Attr (-:n)
может кто-нибудь сказать мне, как это число рассчитывается, поскольку мне нужно знать, потому что я отправляю сериализованные данные на сервер с помощьюtoJSON()
(сторонний плагин для raphael под названием ElbertF / Raphael.JSON )и воссоздание SVG на сервере, текст всегда отсутствуетdy="number"
значение dy
также кажется связанным с атрибутом текста y
, как будто я округляю значение y
, значение dy
также округляется до ближайших 0,5
так например:
textEmement = paper.text(Math.round(x_positionOfText),
Math.round(y_positionOfText));
textEmement.attr({ "font": "",
"fill": fontColour,
"font-family": "Arial",
"text-anchor": "middle",
"font-size": 17});
составляет ->
<text style="text-anchor: middle; font-family: Arial; font-size: 17px;" x="161" y="48" text-anchor="middle" font="" stroke="none" fill="#ffffff" font-family="Arial" font-size="17px">
<tspan dy="5.5">Text 3</tspan>
</text>
удаление Math.round()
из y_positionOfText
делает
<text style="text-anchor: middle; font-family: Arial; font-size: 17px;" x="161" y="48.188976378525" text-anchor="middle" font="" stroke="none" fill="#ffffff" font-family="Arial" font-size="17px">
<tspan dy="5.501476378524998">Text 3</tspan>
</text>
Обратите внимание, как y="48"
дает dy="5.5"
но y="48.188976378525"
даетdy="5.501476378524998"
это убивает меня! почему Рафаэль это делает и КАК!?