有一个代码paper.js:
#canvas {
position: fixed;
top: 0;
left: 0;
width: 100%;
height 100%;
border: 1px solid red;
}
<script src="https://cdn.jsdelivr.net/npm/paper@0.11.5/dist/paper-full.min.js"></script>
<canvas id="canvas" resize></canvas>
<script type="text/paperscript" canvas="canvas">
var points = 10;
var length = 15;
var path = new Path({
strokeColor: '#E4141B',
strokeWidth: 2,
strokeCap: 'round'
});
var start = view.center / [10, 1];
for (var i = 0; i < points; i++)
path.add(start + new Point(i * length, 0));
function onMouseMove(event) {
path.firstSegment.point = event.point;
for (var i = 0; i < points - 1; i++) {
var segment = path.segments[i];
var nextSegment = segment.next;
var vector = segment.point - nextSegment.point;
vector.length = length;
nextSegment.point = segment.point - vector;
}
path.smooth();
}
</script>
无法将其转换为正常的JS. 困难在于它本身path。无法创建它并将其划分为段(部分),然后在事件中对其进行动画处理mousemove。
几乎,但“几乎”一般来说,在这里: