Raphael.js将文本居中放置在路径上
Raphael.js centered text on path
我所拥有的:沿圆形路径的文本。它使用Raphael.js和一个名为textOnPath的函数(可在此处找到:Raphael js Text Along path):
var pathTest = r.path(getCircletoPath(286, 322, radius)).attr({stroke:"#b9b9b9"});
textOnPath(message, pathTest, fontSize, fontSpacing, kerning, kerning, point, textFill, fontNormal, fontFamily);
JSFiddle:http://jsfiddle.net/zorza/62hDH/1/
我需要什么:要在圆顶部居中的文本。
我的方法:根据圆弧大小和文本宽度,尝试计算文本的起始位置。我试图通过用text()函数创建它的不可见克隆来计算文本宽度,并获得它的BBox宽度。
它不太起作用,结果因网络浏览器、使用的字体以及字母和空格的数量而异:
var length = r.text(100,400,message)
.attr({"font-size":fontSize,'opacity': 0, 'font-family': fontFamily})
.getBBox()
.width;
var point = (Math.PI*radius - length*fontSpacing)/2;
JSFiddle:http://jsfiddle.net/zorza/k8vBy/3/
有人能给我指正确的方向吗?
IMHO最简单的方法是创建额外的辅助路径,该路径的大小是文本大小的一半。http://jsfiddle.net/p84VQ/
此外,我发现定义一个圆,然后在指定角度获得点更方便:
var Circle = function(cx, cy, r) {
return function (a) {
return {
x: cx + r*Math.sin(Math.PI*-a/180),
y: cy - r*Math.cos(Math.PI*-a/180)
}
}
};
相关文章:
- 如何在d3.js中返回路径的y坐标
- JS文件的路径正在消失
- D3.js剪辑路径截断了我的图的边缘
- googlemarkercluster.js库的备用源路径是什么
- 最短路径算法js错误
- 如何在three.js中加载指定文件内容而非路径的三维模型
- 如何为JS模块添加包含路径
- 调用后端、多路径变量、Ext Js
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- Vivus JS似乎没有动画某些<路径>节点
- 在 Node 中.js释放 zalgo 的设计模式为什么异步路径是一致的
- 将ng2图表添加到Typescript/ Angular 2项目引用路径和.js文件的路径不正确
- 纸张.js路径数据动画在帧和鼠标拖动
- dust.js:在作用域部分中使用路径
- Require JS with Knockout组件正在查找路径不正确的JS文件
- nodemon找不到模块'/路径/to/project/home/index.js'
- 如何将本地文件路径转换为文件::?/url在node.js中的安全性
- Raphael JS选择路径/对象/节点的特定实例
- React.js.Error:<路径>属性d
- 如何使 MathJax 的源代码(路径.js环境依赖于