草庐IT

javascript - 如何使用 Fabric.js 做类似 Visio 的带有连接的绘图?

我最近开始在一个项目中使用Fabric.js,它很棒。它为Canvas提供了一个抽象层,并且每个对象都有一个完整的“对象操作层/掩码”。我想更进一步,利用它来制作实际的图表,在对象之间建立联系,并让每个对象都有更多的“元数据”。有没有人已经这样做了?Fabric.js是正确的选择吗?关于我将如何在两个对象之间创建“连接器”对象以响应来自它们所附加的对象的事件的任何想法? 最佳答案 这在fabricjs中是可能的-事实上我做了类似的东西,但更简单。在我的项目中,我需要实现一条可编辑线,但不是Fabric内置线,它可以通过边界框编辑,而

javascript - Fabric.js - 带笔划/边框的圆形透明背景

我在fabric.js版本1.6.0-rc.1中呈现了一个圆圈:varcirclePatrol=newfabric.Circle({top:300,left:180,radius:200,strokeDashArray:[10,10],stroke:'black',strokeWidth:10,fill:'white',opacity:0.2});我想将背景设置为透明但保留圆圈周围的描边。这在fabric.js中可能吗?不透明度也被应用于笔划/边框,我试图将它仅应用于圆圈的背景。我也试过透明背景,还是不行:varcirclePatrol=newfabric.Circle({top:30

javascript - 如何在 Fabric.js 上获取鼠标坐标?

我正在尝试读取鼠标在Fabric.js上单击时的X坐标。这是我的代码。控制台每次都记录undefined。varcanvas=newfabric.Canvas('c1');canvas.on('mouse:down',function(e){getMouse(e);});functiongetMouse(e){console.log(e.clientX);} 最佳答案 最好的修复是this方法实现:functiongetMouseCoords(event){varpointer=canvas.getPointer(event.e);

javascript - Fabric JS _updateObjectsCoords 替代方案? (迁移问题到 1.7.9)

更新:JSFiddle:https://jsfiddle.net/Qanary/915fg6ka/我正在尝试使我的curveText功能正常工作(请参阅本文底部)。它通常与fabric.js1.2.0一起使用,但是当我更新到fabric.js1.7.9时,弯曲函数将文本定位在低于的错误位置两个操作顺序执行。行动:-问题1-文本组比例改变(我的意思是通过鼠标拖动Angular点来改变大小)。-调用的setText结构1.2.0:结构1.7.9我调试了它,原因是fabricjs中的_updateObjectsCoords,因为当我从代码中删除它时,上面列出的2个操作工作正常。问题2:但是这

javascript - Angular.js 和 Fabric.js : Fabric canvas changes behavior once code is moved to a Angular Directive

我有一个简单的AngularJS/FabricJs应用程序,目的是允许在上传之前移动/重新调整图像大小。基本上有四个步骤:1)Ipresentaformwithacanvas,andarectangleinsideofformtorepresentacliparea2)browseforalocalfile3)addittothecanvas4)andhaveabuttontocapturetheclipareainsideofthecanvas当我将代码从直接嵌入的形式移动到位于AngularDirective(指令)后面时,就会出现问题。一旦我将表单移动到指令中,就会弹出一个问题,

javascript - Fabric JS : Copy/paste object on mouse down

我正在尝试创建一个方block游戏,您可以在其中从菜单中选择形状并将它们放置在Canvas上。有一个形状菜单,您可以在其中将形状拖到Canvas上。我希望它在将克隆拖到Canvas上时将主要形状留在菜单中。这可能吗?我创建了一个jsfiddle来提供帮助。JSFIDDLEwindow.canvas=newfabric.Canvas('fabriccanvas');varedgedetection=10;//pixelstosnapcanvas.selection=false;window.addEventListener('resize',resizeCanvas,false);fun

javascript - 如何围绕 fabric.js 中的一个指定点旋转?

有人知道如何在fabric.js中围绕一个指定点旋转吗?例如,varline1=newfabric.Line([70,20,70,100],{stroke:"#000000",strokeWidth:6});我想根据它的端点(70,100)而不是它的中心旋转它。 最佳答案 您可以使用fabric.util.rotatePoint实现围绕任意点的旋转。这将使您可以围绕原点(由origin_x和origin_y定义)以度为单位的Angular(由angle定义)。请注意,fabric.util.rotatePoint以弧度为单位进行旋转

javascript - 使用 fabric.js 在 Canvas 中加载 JSON

我正在尝试将数据保存在JSON中并使用fabric.js将其加载回Canvas中我不断收到以下简单代码的错误:canvas.add(newfabric.Rect({width:50,height:50,fill:'red',top:100,left:100}));varc=canvas.toJSON();canvas.clear();canvas.loadFromJSON(c);我得到:SyntaxError:JSON.parse:unexpectedcharacter[BreakOnThisError]varCufon=(function(){vark=function()....I

javascript - Fabric JS - 将对象发送到后台

当您选择一个对象(在我的例子中是一个多边形)时,它会自动移动到前面。我正在寻找一种方法来防止在z轴上移动或在选择后将其向后发送,也许有人可以提供帮助?这是一个简单示例的链接:http://jsfiddle.net/98cuf9b7/1/当您选择其中一个多边形时,它会移到前面。我试图在选择后将它向后发送,但即使调用了“canvas.sendToBack(object)”函数,它仍然留在前面。我的示例中的代码是:varcanvas=newfabric.Canvas('c');varpol=newfabric.Polygon([{x:200,y:0},{x:250,y:50},{x:250,

javascript - 将 Fabric.js 文本转换为路径

我使用Fabric.js库和谷歌字体在Canvas上写了一些文本。然后我通过toSvg()函数将Canvas导出为SVG。当我在矢量编辑器中导入*.svg文件时,例如在Inkscape中,字体变成了默认的——Arial。检查svg文件结构我没有发现任何错误-它有正确的字体声明。所以我有一个问题:如何将fabric.Text转换为形状或路径,以便毫无问题地保存? 最佳答案 我认为https://github.com/nodebox/opentype.js应该是可能的现在。 关于javasc