Javascript 如何调整dojo向量的大小(不完全是缩放)?

Javascript 如何调整dojo向量的大小(不完全是缩放)?,javascript,vector,svg,dojo,Javascript,Vector,Svg,Dojo,我正在为..制作一个带有块的调度应用程序。。表块。它们由1px矩形分隔。在大多数情况下,我可以简单地使用变换来缩放网格,但我显然希望这些1px分隔符保持相同的宽度 也许这更像是一个意见问题,因此违反了规则,但目前我唯一能想到的方法是将我的行保留在一个单独的数组中,然后根据需要移动/缩放它们,在调整大小事件中重新计算新的维度,但我觉得应该有一个更好的方法来实现这一点,我不知道自己是dojo新手。如果这是一种可以接受的方法,那么请这么说,因为我不想从一开始就陷入反模式。有没有一种更合适的方法来表示区

我正在为..制作一个带有块的调度应用程序。。表块。它们由1px矩形分隔。在大多数情况下,我可以简单地使用变换来缩放网格,但我显然希望这些1px分隔符保持相同的宽度

也许这更像是一个意见问题,因此违反了规则,但目前我唯一能想到的方法是将我的行保留在一个单独的数组中,然后根据需要移动/缩放它们,在调整大小事件中重新计算新的维度,但我觉得应该有一个更好的方法来实现这一点,我不知道自己是dojo新手。如果这是一种可以接受的方法,那么请这么说,因为我不想从一开始就陷入反模式。有没有一种更合适的方法来表示区块线,而不是简单地用矢量来表示

编辑:要求提供代码示例。我可以发布我的代码,但这并不重要,更简单的示例如下:

var rect = surface.createRect({ x: 100, y: 50, width: 200, height: 100 })
.setFill("yellow");
鉴于上述情况,我将如何将宽度更改为300,或移动对象的位置?我尝试过修改基础形状,在本例中是rect.shape,但它似乎没有应用这些更改,这并不奇怪

如果我可以修改的话,这会很方便,但是我找不到一种方法来应用这些更改。我只是猜测一下,我试着运行了rect.\u applyTransform(),但这也不起作用,而且我没有看到任何其他检查dom的方法可能对我有用,在文档中我也找不到任何东西,除了基于百分比的缩放,我可以使它起作用,但是这会很不方便,我仍然不知道如何简单地移动物体/改变它的位置


edit2:找到了答案,见下文。找到了,我正在寻找setShape方法。这使您可以直接设置任何形状特性、位置坐标、高度、宽度和半径(对于矩形)。我能告诉你的是,如果你想用相对定位而不是绝对定位来移动它,你只需要从它的当前位置上加(或减)就可以了,这个位置可以从obj.shape属性中得到,非常简单

例如,向右移动rect 50px并使其高出20px,您可以这样做:

rect.setShape({height: rect.height + 20, x: rect.shape.x + 50});
另外,如果移除形状对任何人都有帮助,只需调用removeShape方法,我就花了一分钟找到它;我不喜欢dojo引用的设置方式,到目前为止,我很幸运地使用firebug浏览dom,无论是好是坏