如何将矩阵信息转换为简单的 x 和 y 坐标
How to translate matrix information into simple x and y coordinates
我有一个SVG文件,我正在Illustrator中编辑。我已经使用此文件中的路径信息来使用它创建一个 Raphael 对象。我现在想做的是向绘图的某些部分添加文本。问题是拉斐尔只接受 X 和 Y 坐标,而 SVG 文件中的文本是一个矩阵。
基本上我需要转动这个:
<text transform="matrix(1 0 0 1 583 562)" font-size="12">Argentina</text>
变成这样的东西:
var t = paper.text(x, y, "Argentina");
这可能吗?我也尝试过将文本转换为大纲,但结果路径很复杂,我更喜欢更轻松的东西。
在您的特定情况下,矩阵只是转换为 x: 583
和 y: 562
,但是如果您的元素被缩放或旋转,那么这些值将具有误导性。
您可以直接在 Raphael 中应用变换矩阵,您需要做的就是......
transformation = Raphael
.matrix(1, 0, 0, 1, 583, 562)
.toTransformString();
text = paper
.text(0, 0, "Argentina")
.attr("font-size", 12)
.transform(transformation)
现在,如果不喜欢对元素应用转换,您可以通过执行console.log(transformation)
将矩阵转换为更易于阅读的格式,这将为您提供一个字符串,例如 t100,100r30,100,100s2,2,100,100
在 Raphael 的文档中得到了很好的解释
我听到你的问题了。当我编写SVG到拉斐尔转换器(第一个转换器之一)时,我研究了这些问题。转换器将所有变换从路径中取出,并将所有坐标从相对坐标更改为绝对坐标。在 svg 文本中,有很多东西需要你思考。我写的封面为转换文本提供了一些支持。我想你可以尝试把你的SVG通过转换器,看看它引用文本是什么javascript。转换器至少会输出几种格式,但您可能会尝试的 2 种是默认输出。转到转换器页面
仅使用默认值上传您的 SVG。当您单击"收集拉斐尔"时,将带您进入生成的交互式JavaScript。这仅处理路径以查看使用文本单击"或页面"链接完成的工作...
如果您需要帮助,我会回来查看...
- EaseJS拖放;放下(动画CC)电影剪辑的鼠标坐标
- 简单的javascript在Shopify中不起作用
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 如何在d3.js中返回路径的y坐标
- 如何制作简单的php'在Javascript中的foreach等价物
- 在谷歌地图上获取事件的x,y坐标
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- JQuery:向多个匹配结果添加换行符的最简单方法
- AJAX简单错误.XMLHttpRequest无法加载http://localhost/mpl/getPage.php.
- Moment/Jquery-一个简单时间线的愚蠢问题
- 当带有渲染器的DOM元素不在屏幕顶部时,移动了场景的坐标
- 如何在JS Leatflet绘图插件中获取圆的坐标
- 什么's本地node.js服务器和python简单http服务器之间的区别
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 简单类测试未通过
- 简单地将拆分变量添加到对象中
- 通过javascript操作图像,非常简单
- 如何将矩阵信息转换为简单的 x 和 y 坐标
- 在HTML5画布上移动时跟踪鼠标坐标的简单方法
- 最好和最简单的方法传递地图坐标到谷歌地图