跳转到内容

JavaScript Deformer

JavaScript Deformer 可用于以有趣新颖的方式操作 Shape 的 points。

有关 JavaScript 如何在所有 JavaScript Layers 中使用的更多信息,请参见 JavaScript Layers

See JavaScript Layers→

此 deformer 类似于 JavaScript ShapeJavaScript Utility,但它具有一些额外的语法,使其能够访问 Shape 的 geometry。它可以访问所有 Context Module,这意味着数据可以在帧之间保存和加载。

有关此 Layer 独有的 Member Functions,请参见 Deformer Module

JavaScript Expression - 在此输入 JavaScript 代码。

Button icon - 将 Dynamic Attributes 添加为变量。

  1. 创建一个 Basic Line
  2. 创建一个 JavaScript Deformer
  3. 将默认的 JavaScript Expression 替换为:
var points = def.getPoints();var bbox = def.getBoundingBox();var maxX = bbox.x+bbox.width;var frequency = 10;var amplitude = 50;for (let pt of points) { let normX = cavalry.norm(pt.x, bbox.x, maxX); pt.y += Math.sin((normX+n0*.1)*frequency)*amplitude;}def.setPoints(points);
  1. 连接 javaScriptDeformer.id→basicLine.deformers。

这会将线段变形为波浪。尝试将第 4 行的 let frequency = 10; 替换为 let frequency = n0;,然后使用底部的 n0 属性来更改 deformer 的频率。