【发布时间】:2012-01-16 13:07:44
【问题描述】:
在 Flash 中,我使用lineTo 在两点之间画一条线。这运行良好,但我发现在速度较慢的计算机上,这条线是锯齿状的,因为触发的鼠标事件不多。
我想“平滑”线条,在鼠标注册的每个点之间添加更多点:
黑线表示结果,绿线是我想要的。红点是实际点,绿点是插值。
我自己尝试过编写代码,但我似乎无法正确编写代码,无论如何这里是代码:
var interX:Number = lastMouseX+(lastMouseSpeed.x/2);
var interY:Number = lastMouseY+(lastMouseSpeed.y/2);
//Also tried: lastMouseX+(this.mouseX-lastMouseX)/2;
// also jittery
graphics.lineTo(interX, interY);
graphics.lineTo(this.mouseX, this.mouseY);
lastMouseSpeed.x = this.mouseX-lastMouseX;
lastMouseSpeed.y = this.mouseY-lastMouseY;
lastMouseX = this.mouseX;
lastMouseY = this.mouseY;
结果比正常的更加参差不齐。
抱歉,我不能提供屏幕截图(由于某种原因,它会将我的屏幕复制为黑色)
【问题讨论】:
标签: flash actionscript-3 math graphics drawing