您好,我想在mouseDragged
或mousePressed
上旋转网格。我的代码正在工作,但是当我停止按下鼠标时,旋转将转到起点,而不是重新绘制网格。请指导我完成拖动或鼠标按下到终点后如何重画网格?
答案 0 :(得分:0)
之所以引起这个问题,是因为变量angle
声明为局部变量,并在每个帧中都由0初始化。
将变量声明移至全局范围。例如:
let angle = 0;
function draw() {
// [...]
if (mouseIsPressed) {
angle = atan2(mouseY - height / 2, mouseX - width / 2);
}
// [...]
}
根据评论进行扩展。
我如何开始再次从其结束位置拖动
let permanent_angle = 0;
function mouseReleased() {
let angle = atan2(mouseY - height / 2, mouseX - width / 2);
permanent_angle += angle;
}
function draw() {
// [...]
let current_angle = 0;
if (mouseIsPressed) {
current_angle = atan2(mouseY - height / 2, mouseX - width / 2);
}
translate(width / 2, height / 2);
rotate(permanent_angle + current_angle);
translate( -width / 2 + 20, -height / 2 +20 );
// [...]
}