草庐IT

mermaid-svg-TeqIvZ

全部标签

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

javascript - 如何将图像添加到 svg 圆的中心?

我正在尝试将图像添加到SVG圆的中心。我尝试了模式但它不会使图像居中。我正在使用Javascript。 最佳答案 剪辑应该可以满足您的需求:https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Clipping_and_masking类似于:您可以在此处查看此示例的结果:http://jsbin.com/EKUTUco/1/edit?html,output由您根据图像的大小通过x和y属性在javascript中将图像居中。 关

javascript - svg Canvas 内的原生按钮标签

我需要在SVGCanvas中放置一个按钮标签,有什么办法吗?(我正在使用拉斐尔JS)我知道我可以在svgCanvas内“绘制”一个按钮并编写onclick事件代码,但我想保留浏览器按钮的原生外观和感觉。谢谢你。 最佳答案 可以在SVG中使用HTML按钮,使用SVGforeignObject元素:http://www.w3.org/TR/SVG/extend.html#ForeignObjectElement规范中包含如何使用它的示例。不幸的是,我不确定如何最好地使用raphaeljs中的foreignObject。我相信foreig

JavaScript 和 SVG : how do you increase the clickable area for an onClick event?

我的脚本以3的stroke-width在屏幕上绘制线条。线条的大小(在视觉上)很理想,但它们不太容易点击。举个粗略的例子:functionselectStrand(evt){current_id=evt.target.getAttributeNS(null,"id");document.getElementById('main').innerHTML=current_id;}Selectedline:有没有一种简单的方法可以增加每条线周围的区域,使其更易于点击? 最佳答案 对于每条线,尝试在其上绘制一条具有更大笔划宽度的透明线,并在

javascript - 如何使用 javascript 克隆 SVG 元素?

我正在尝试按照示例here在cloneNode部分下(文档中第四次出现“cloneNode”)。该文件说这是一个草稿,所以我想知道这些功能是否还不存在于SVG中??这是我的HTML:varRoot=document.documentElementfunctionclone(){varG=document.getElementById("groupid")alert('hi')varNewG=G.cloneNode(true)alert('bye')varmove="translate("+0+","+30+")"NewG.setAttributeNS(null,"transform",

javascript - 如何获取 SVG tspan 元素的宽度

我正在尝试获取SVG中tspan元素(位于text元素内)的呈现宽度。这是我的标记:Value1Value2在视觉上,我希望值1向左浮动,而值2向右浮动,以便多个元素将这样对齐:Value1Value2Value10Value20Value100Value200Value1000Value2000因为我想要tpsan的宽度(“值1”/“值2”)而不是文本元素,所以我不能使用getBBox(),因为该方法不适用于tspan元素。奇怪的是,使用jQuery的width()方法将在Chrome中返回正确的值,但在Firefox中返回NaN。任何想法将不胜感激。 最

javascript - 在 G 标签中包装现有的 SVG 元素

这似乎是一个简单的问题,但我很难回答:Isitpossibleto"wrap"existingSVGshapesinanewSVGgtag(i.e.group)usingd3.js,.wrap()在jQuery中的工作方式?如果我只是“手动”创建一个新的g标签,那么我将如何将现有元素移动到该g中? 最佳答案 如果您将现有的DOM元素传递给append或insert,该元素(及其子元素)将从它们在DOM层次结构中的当前位置移动到您'刚刚插入它们。varstuffToBeWrapped=d3.selectAll(".stuff");st

javascript - 扩展原生 d3 组件(如 d3.svg.axis())的惯用方法是什么?

对于d3中的时间序列可视化,我想在轴上突出显示年份。我通过制作我自己的xAxis渲染器实现了这一点,它调用nativeaxis函数,然后实现我自己的自定义逻辑来格式化它渲染的刻度。我就是这样做的(seeworkingexampleonjsbin):xAxis=d3.svg.axis().scale(xScale)customXAxis=function(){xAxis(this);d3.selectAll('.tick',this).classed("year",isYear);};...xAxis.ticks(10);xAxisElement=canvas.append("g").c

javascript - 如何获取分组 svg 元素的全局坐标?

假设我有以下document(fiddle):如果我不知道rect元素在一个组中,我如何获取它的全局坐标? 最佳答案 其实有点难找。搜索SVGElement的方法会导致页面显示SVGElement没有方法!它实际上有很多方法,但它们是继承的:http://www.w3.org/TR/SVG/types.html#InterfaceSVGLocatable根据您的需要,您可以使用getCTM或getScreenCTM的结果来转换SVGPoint,从而了解您的元素在哪里:root=document.getElementById('roo