Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Fabric.js 3.4-动态调整组或多边形上的SVG strokeWidth_Javascript_Svg_Fabricjs_Stroke - Fatal编程技术网

Javascript Fabric.js 3.4-动态调整组或多边形上的SVG strokeWidth

Javascript Fabric.js 3.4-动态调整组或多边形上的SVG strokeWidth,javascript,svg,fabricjs,stroke,Javascript,Svg,Fabricjs,Stroke,我有一个应用程序(基于fabric.js 3.4),允许用户通过滑块实时调整SVG(组或多边形)的笔划。然而,这似乎打破了形象。因此,例如,如果我有一个SVG(组),一个笑脸,眼睛有两个圆圈(笔划),一个有笔划的嘴和外圆——更新滑块以增加笔划宽度,使图像变形,使眼睛等开始重叠/移动(即,不作为一个单位/图像缩放在一起),或者图像“闪烁”-滑块移动时消失/重新出现 用于更新的代码是: var value = //get value from slider widget var obj = ca

我有一个应用程序(基于fabric.js 3.4),允许用户通过滑块实时调整SVG(组或多边形)的笔划。然而,这似乎打破了形象。因此,例如,如果我有一个SVG(组),一个笑脸,眼睛有两个圆圈(笔划),一个有笔划的嘴和外圆——更新滑块以增加笔划宽度,使图像变形,使眼睛等开始重叠/移动(即,不作为一个单位/图像缩放在一起),或者图像“闪烁”-滑块移动时消失/重新出现

用于更新的代码是:

 var value = //get value from slider widget
 var obj = canvas.getActiveObject();
   if (obj && obj.type == "group") {          
        for (i = 0; i < obj._objects.length; i++) {
            if (obj._objects[i]) {
                obj._objects[i].set({ strokeWidth: value });
            }
        }      
    } else if (obj && obj.type == "polygon") {
        obj.set({ strokeWidth: value });
    }
    canvas.renderAll();
var value=//从滑块小部件获取值
var obj=canvas.getActiveObject();
如果(obj&&obj.type==“组”){
对于(i=0;i
这样做是错误的吗?
任何帮助都将不胜感激。

缩放组内元素的正确方法是更改组本身的
scale
值:

group.set({scaleX:value,scaleY:value})


但是,如果需要更改组内对象的某些值,请确保在附近调用调用
canvas.renderal()
,以更新组的所有必要值。请参阅我最近的回复,了解更多详细信息。

缩放组内元素的正确方法是更改组本身的
缩放值:

group.set({scaleX:value,scaleY:value})


但是,如果需要更改组内对象的某些值,请确保在附近调用调用
canvas.renderal()
,以更新组的所有必要值。请参阅我最近的回复,了解更多详细信息。

谢谢您的回复。虽然我不想缩放SVG。换句话说,如果我的SVG以400px 400px的速度放置在画布上,我希望笔划根据滑块输入变得更胖/更瘦,而不影响比例。(还是要400x400px)。我不确定我将如何使用Update添加,因为我没有向画布添加任何新内容,只是更改已有内容的storkeWidth。事实上,我不介意大小是否必须增加/缩小一点以适应更厚/更薄的笔划宽度,但缩放不是我的主要目标。我尝试在整个组上设置strokeWidth——obj.set({strokeWidth:value});--但这似乎只是增加了SVG周围的填充区域,而不会影响SVG本身。感谢Adam的回复。尽管我不想缩放SVG。换句话说,如果我的SVG以400px 400px的速度放置在画布上,我希望基于滑块输入的笔划变得更胖/更瘦,而不会影响缩放。(还是要400x400px)。我不知道如何添加更新,因为我不是在画布上添加任何新内容,只是更改已有内容的storkeWidth。事实上,我不介意大小是否必须增大/缩小一点以适应较厚/较薄的笔划宽度,但缩放不是我的主要目标。我尝试在整个组上设置strokeWidth--obj.set({strokeWidth:value});--但这似乎只是增加了SVG周围的填充区域,而不会影响SVG本身。