如何用鼠标位置控制QuadraticCurve手柄位置?

国立

我如何控制QuadraticCurve用鼠标位置处理位置而又不像这里那样重叠我需要这样的东西

onMouseMove = function(event) {
    var path = new Path();
    path.moveTo(300,100);
    path.strokeColor = 'blue';
    path.fillColor = 'red';
    // path.fullySelected = true;
    path.quadraticCurveTo(event.point.x,event.point.y,300,500);

}

但无需绘制先前的路径。有什么方法可以实现动态QuadraticCurve手柄?

亚历克斯·布莱克伍德

在当前代码中,您将Path在每个onMouseMove事件创建一个新项目,而不会删除任何先前的项目。如果只想渲染一个路径项,请在超出范围的情况下创建路径的变量,并在创建新项之前将其删除:

var path = new Path();

onMouseMove = function(event) {
    path.remove();

    path = new Path();
    path.moveTo(300,100);
    path.strokeColor = 'blue';
    path.fillColor = 'red';
    // path.fullySelected = true;
    path.quadraticCurveTo(event.point.x,event.point.y,300,500);

}

这是草图

或者,您可以移动handles曲线的控件,而不是Path在每个事件上创建新控件

var path = new Path([300, 100], [300, 500]);
path.strokeColor = 'blue';
path.fillColor = 'red';

onMouseMove = function(event) {
   path.segments[0].handleOut = (event.point -path.segments[0].point)/1.5;
   path.segments[1].handleIn = (event.point - path.segments[1].point)/1.5;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章