2015-01-20 2 views
0

Вот мой код, как найти SVG расположение текста

<html> 
<body> 
<svg id="text" height="400" width="400" > 
<text transform="rotate(127,128,64)" opacity="1" text-anchor="start" font-weight="regular" font-style="Normal" font-family="Segoe UI" font-size="12px" fill="#191919" y="68.25" x="128" id="caption">Revenue </text> 
</div> 
</body> 
</html> 

текст (доход) начать й местоположение 128. как найти й местоположение последнего символа (е) текста (доход). нужен подлинный расчет. потому что вращение степени изменчиво.

+0

Вызов getStartPositionOfChar –

+0

не может понять, как это возможно, используя этот метод, может у пожалуйста, покажите пример? –

ответ

0

Вызвать getStartPositionOfChar и преобразовать локальные координаты, преобразуя их, например.

var pos = document.getElementById("text").getStartPositionOfChar(6); 
 
var matrix = document.getElementById("text").transform.animVal.getItem(0).matrix; 
 
var position = pos.matrixTransform(matrix); 
 
alert(position.x + ", " + position.y);
<html> 
 
<body> 
 
<svg height="400" width="400" > 
 
<text id="text" transform="rotate(127,128,64)" opacity="1" text-anchor="start" font-weight="regular" font-style="Normal" font-family="Segoe UI" font-size="12px" fill="#191919" y="68.25" x="128" id="caption">Revenue </text> 
 
</div> 
 
</body> 
 
</html>

+0

показывает неправильный вывод .. (167,68.25), как это правильно, потому что текстовое местоположение по умолчанию - 128,68.25 при повороте текста на 127 град. Последний символ текста. X местоположение должно отображаться меньше, чем 128 –

+0

The co ординаты находятся в преобразованной системе координат. Я изменил ответ, чтобы вы могли понять, как его преобразовать. –

+0

Hai Robert спасибо за вашу помощь ... он работает ... еще один вопрос .. Мне нужен такой же результат, прежде чем добавить текст как? –

Смежные вопросы