草庐IT

svg-android

全部标签

javascript - 使用纯 javascript 围绕中心缩放 SVG

我有一个问题,可能无法很好地理解坐标在SVG中的工作原理。我有一个缩放svg图形的javascript函数,例如:varg=document.getElementById("graph");varnm=g.getCTM().multiply(k);//kisthescalefactorg.setAttribute("transform","matrix("+nm.a+","+nm.b+","+nm.c+","+nm.d+","+nm.e+","+nm.f+")");关键是在缩放后中心会稍微平移,因此图形失去了“地理”中心。我如何才能确定我需要哪种翻译才能“围绕”其中心缩放图形?谢谢。

javascript - 使用给定的 x 坐标获取沿 SVG 路径的点的 y 坐标

我正在使用raphael.js绘制一个简单的SVG折线图,如下所示:当用户悬停图形时,id喜欢在光标的X位置显示一个指向该线的弹出框,并在该线所在的Y位置像这样的X位置:我需要找到路径并找到给定X坐标的Y坐标。 最佳答案 基于@Duopixel的D3解决方案,我使用DOMAPI在纯javascript中编写了以下函数供我自己使用:functionfindY(path,x){varpathLength=path.getTotalLength()varstart=0varend=pathLengthvartarget=(start+en

javascript - D3 事件在隐藏的 svg 元素上触发

我似乎找不到这个问题的答案,我花了一段时间将它重新创建为一个独立的fiddle/笔,但我终于找到了。我正在开发使用D3绘制和操作svg图形的Vaadin应用程序。在某一点上,屏幕上有svg,它具有visibility:hidden。这在所有浏览器中都能完美地找到。这些隐藏元素有点击和鼠标悬停事件,在所有浏览器中都能找到但是在firefox版本34中,隐藏元素仍然会在它们仍然隐藏时触发它们的事件(单击和鼠标悬停)。为了更好地解释:当一个按钮被隐藏时,它的鼠标悬停事件不应该触发,当它可见时应该触发。这就是它在所有浏览器中的工作方式,除了firefox34、35beta和36开发版。它在Fi

javascript - SVG <pattern> 由 Javascript 生成时不会加载

这个问题不太可能帮助任何future的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visitthehelpcenter.关闭9年前。更新的问题,基于一个更简单的测试用例:我有一个网站使用由脚本生成的图形。图形中的东西充满了svg图案。到目前为止,还不错。我现在添加一个使用Javascript将元素添加到图形中已有的模式。我可以很容易地做到这一点,使用类似createElementNS的方法,setAttribute和appendChild.SVG图案元素如下所示:它们是这样使用的:现在

javascript - 如何通过动画更改 Snap.svg 中多边形的点?

我正在尝试实现一个带有特定多边形的按钮,按下该按钮会将多边形更改为其他内容。例如,按钮上的播放图标变为停止图标。理想情况下,该图标应该是一个多边形,其中三个点描绘了游戏符号。动画后它变成一个四点多边形(一个正方形)描绘停止符号。我试过这样做:varpaper=Snap('svg');vartpts=[100,100,100,130,120,115];varsqpts=[100,100,100,130,130,130,130,100];vartri=paper.polygon(sqpts);tri.attr({id:"tri",fill:"#555555"});sqrFunc=funct

javascript - 通过javascript获取SVG图形的大小

在html页面中添加一个svg图形,通常使用object标签这样包裹起来:thisbrowserisnotabletoshowSVG:http://getfirefox.comisfreeanddoesit!IfyouuseInternetExplorer,youcanalsogetaplugin:http://www.adobe.com/svg/viewer/install/main.html如果不在对象标签中使用宽度和高度属性,则svg将以全尺寸显示。通常我从OpenGraphicsLibrary获取svg文件进行测试。有什么方法可以使用JavaScript获取svg的大小吗?或者

javascript - svg + Sprite 表 + d3 + clipPath + 位置 + 大小

需要提前道歉:对于篇幅和我的无知。我正在尝试自学新概念:d3.js和Sprite表。Sprite表的概念很容易理解,但我很困惑如何将其集成到d3中。基本上我想做的是从Sprite表中选择我想用作图像的Sprite,然后使用d3在页面的其他地方显示这个选定的Sprite,并且很可能是同一个Sprite的多个副本。供引用的实际sprite表(见下面的免责声明):问题如下:1)我将sprite表添加到我的html中,硬编码现在,这显示了我想要的特定Sprite,但是,Sprite的尺寸/定位就像显示了整个Sprite表一样。我怎样才能只“捕获”Sprite本身,而不仅仅是隐藏未使用的Spri

javascript - 鼠标悬停在 SVG 圆圈上

我是SVG的新手,所以如果这是一个基本问题,请原谅我。我想在屏幕上画圆圈,并在用户将鼠标悬停在每个圆圈上时做出响应。据我所知,当在svg上监听鼠标事件时,我们实际上是在整个Canvas上监听鼠标事件,而不是在形状上。如果我想处理形状上的事件,我必须使用像D3这样的库。是否可以监听当鼠标指针经过特定圆圈时触发的mouseOver事件? 最佳答案 这不需要库。给定以下SVG:您可以使用CSS或Javascript使这些圆圈以与鼠标相关的某种方式发生变化。对于在css中的简单悬停,您可以执行以下操作:#circle1:hover{fill

javascript - 将 SVG 曲线拟合为多项式

假设我有像x²或2x+3x²这样的函数,如何创建适合这些函数的SVG路径?根据我对SVG和Bezier曲线的有限理解,我相信我正在寻找for是一种构造贝塞尔曲线控制点的简单技术,可确保生成的图形符合给定函数。您可以放心地假设(如果您还没有猜到的话)我是图形编程的新手。我知道像gnuplot这样的框架可以执行这种类型的插值,但我正在寻找有关如何使用SVG和JavaScript手动执行此操作的解释。编辑:精确拟合不是严格要求,但生成的图表必须相当准确(出于教学目的)。 最佳答案 SVG提供了2阶和3阶贝塞尔曲线,对于二次和三次多项式应该

javascript - 如何使用 Javascript 在 SVG 中绘制不可缩放的圆

我正在开发一张map,在Javascript中使用SVG绘制线条。我想添加一个可以搜索道路的功能,如果找到道路,map上会出现一个圆圈。我知道我可以在SVG中画一个圆,但我的问题是,圆的大小不应该根据缩放级别而改变。换句话说,圆必须始终具有相同的大小。我map上的道路有这个功能,我所要做的就是添加vector-effect="non-scaling-stroke"到行属性..一行看起来像这样。圆圈看起来像这样。是否可以通过某种方式将圆定义为“非缩放”? 最佳答案 我花了一段时间,但我终于把数学搞清楚了。此解决方案需要三件事:包括th