如果在onFrame中添加了新点,则会忽略Path.scale

时间:2014-09-07 23:48:55

标签: javascript canvas html5-canvas paperjs

绘制路径时,如果我添加点,则先前设置的比例会被覆盖/忽略。

我无法在绘图完成后调用缩放,因为在用户长时间观看时绘制它。我不能在循环中调用scale来添加新点,因为它会变得越来越大并且越过屏幕。

这将有效

  var line = new Path();

  line.strokeColor = 'orange';

  line.add(50,50);
  line.add(100,50);

  line.scale(10);

  function onFrame() {
    line.rotate(1);
  }

这不会

  var line = new Path();

  line.strokeColor = 'orange';

  line.scale(10);

  function onFrame() {
    line.add(50,50);
    line.add(100,50);
    line.rotate(1);
  }

http://plnkr.co/edit/YwCj9AdcLK8kDbJaTwz9?p=preview

1 个答案:

答案 0 :(得分:2)

默认情况下,包含比例的矩阵会立即应用于路径的子项,而不是路径的属性。要更改此行为,您可以使用item.applyMatrix来阻止立即应用比例转换。

  var line = new Path();
  line.applyMatrix = false;

  line.strokeColor = 'orange';

  line.scale(10);

  function onFrame() {
    line.add(50,50);
    line.add(100,50);
    line.rotate(1);
  }

https://groups.google.com/forum/#!searchin/paperjs/applymatrix/paperjs/4EIRSGzcaUI/seKoNT-PSpwJ