在Javascript中使用相同的函数绘制矩形和正方形

在Javascript中使用相同的函数绘制矩形和正方形,javascript,canvas,draw,Javascript,Canvas,Draw,我想在我的程序中使用相同的var-rectangle绘制矩形和正方形。我已经修改了函数来绘制正方形,给出了需要在下面添加哪些内容才能同时适用于矩形和正方形的modeOptions={“Rectangle”,“square”}。请建议。谢谢 也可在以下网址查看问题: 要强制生成的矩形仅为正方形,需要修改矩形mousemove方法 修改将强制要求这始终是正确的: Math.abs(obj.maxx-obj.minx) == Math.abs(obj.maxy-obj.miny). 由您决定如何实

我想在我的程序中使用相同的
var-rectangle
绘制矩形和正方形。我已经修改了函数来绘制正方形,给出了需要在下面添加哪些内容才能同时适用于矩形和正方形的
modeOptions={“Rectangle”,“square”}
。请建议。谢谢

也可在以下网址查看问题:


要强制生成的矩形仅为正方形,需要修改矩形mousemove方法

修改将强制要求这始终是正确的:

Math.abs(obj.maxx-obj.minx) ==  Math.abs(obj.maxy-obj.miny).
由您决定如何实施该结果。

例如,假设upPos位于downPos的右下方:

您可以让水平长度获胜:

obj.maxy = obj.miny+(obj.maxx-obj.minx);
您可以让垂直长度获胜:

obj.maxx = obj.minx+(obj.maxy-obj.miny);
您甚至可以让minx/miny浮动来创建一个正方形:

obj.minx = obj.maxx – (obj.maxy-obj.miny);

//  or 

obj.miny= obj.maxy – (obj.maxx-obj.minx);

请尝试jsfiddle.net,简化您的问题。只发布有问题代码的相关路径。这样会得到更多的响应。好的。我也把它贴在那里了。谢谢。然后在你的问题中发布链接…这里:(不确定这样做是否正确。)…这不起作用。我想同时绘制矩形和正方形。我修改了代码,能够画正方形。但我怎么能把两者都画出来呢。我试过另一个单选按钮,它不起作用。
obj.minx = obj.maxx – (obj.maxy-obj.miny);

//  or 

obj.miny= obj.maxy – (obj.maxx-obj.minx);