草庐IT

fabricjs

全部标签

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

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

javascript - 修改对象后如何获取文本对象字体大小

如何在fabric.js中修改对象后获取文本对象字体大小?下面是我的代码。vartext=newfabric.Text(imgText,{left:10,top:5,fontSize:15,fontFamily:'Verdana',fill:'white'});text.scaleToWidth(canvas.width*0.5);text.setControlsVisibility(canvasConfig);canvas.add(text);canvas.renderAll();varobjects=canvas.getActiveObject();varobj=objects;i

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 - 仅在移动、缩放和旋转时渲染选定对象

我目前正在做一个“PhotoCollageMaker”项目,它需要更大的Canvas区域和数百个对象(文本、图像、形状、剪贴画等)。问题是在移动、缩放和旋转这些对象时,Fabric.js渲染所有对象,这使得它太慢了。我只想在织物Canvas上渲染选定的对象。我也测试了renderOnAddition、renderTop,但它们不是我想要的。我想要以下内容:canvas.on('object:moving',function(e){varactiveObject=e.target;//canvas.renderAll();canvas.renderObjects(activeObject

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 - Canvas :矩形——对齐网格/对齐对象

我设法通过以下方式操作Fabric.js以向网格功能添加捕捉和缩放:vargrid=100;//SnaptoGridcanvas.on('object:moving',function(options){options.target.set({left:Math.round(options.target.left/grid)*grid,top:Math.round(options.target.top/grid)*grid});});canvas.on('object:scaling',function(options){options.target.set({left:Math.ro

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以弧度为单位进行旋转