拖动鼠标在正方形内画一个圆

draw a circle within a square while dragging a mouse

我觉得今天过得不太好,而且我正在努力解决一个我认为应该很容易的问题。

我必须在拖动鼠标的同时画一个圆。用户单击并按住、拖动鼠标并释放按钮。

但是:

1) 我有 mousedown 事件的坐标和当前的坐标 (x1, y1, x2, y2)。这个定义了一个矩形。

2)(x1,y1)必须是圆心,半径必须是x1,y1到当前的距离

3) 我必须显示当前半径(值;不是线本身)。

4) 用户必须能够通过向左、向右、向上、向下以及任何中间组合拖动来绘制圆圈。

非常感谢!

PS:作为一个选项(例如,如果用户在按住 shift 键的同时拖动),矩形应该是正方形,应该绘制一个圆形而不是椭圆形。

(打赌 0,0 是左上角,否则将 1 和 2 反转;x1/y1 是 buttondown 是中心)

半径 = sqrt((x1-x2)^2 + (y1-y2)^2)

x_leftuppercorner = x1 - 半径

y_leftuppercorner = y1 - 半径

x_rightlowercorner = x1 + 半径

y_rightlowercorner = y1 + 半径

dCircle(x_luc, y_luc, x_ruc, y_ruc)