【发布时间】:2020-06-22 05:22:05
【问题描述】:
目前我有一个画布,您可以在其中使用光标绘制正方形,例如paint.net。当您拖动光标时,它将从左角开始创建一个正方形。我希望它从广场的中心开始。是否可以通过rect 实现这一目标?
下面的代码从左角开始绘制一个正方形,其中mouseCoords 是光标开始拖动的起点,currentMouse 是您拖动到的位置。
//create rectangle starting from left corner
canvas.getContext('2d').rect(
mouseCoords.x,
mouseCoords.y,
currentMouse.x - mouseCoords.x,
currentMouse.y - mouseCoords.y
);
【问题讨论】:
-
为什么不偏移正方形的起始位置,使其以起始位置为中心?除非我错过了隐藏的复杂性
-
我试图通过将起点推得更远,但没有成功:
mouseCoords.x - (currentMouse.x - mouseCoords.x)(这是 .rect 的第一个参数。对于 Y 也是如此)。这只会导致画在相反的方向 -
我找到了解决方案,我忘了乘以宽度和高度。感谢您的宝贵时间!