<!doctype html> <html> <head> <style> canvas,svg {width:900px; height:900px;} </style> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/paper.js/0.12.17/paper-full.js"></script> <script type="text/paperscript" canvas="myCanvas"> //a star to move and the path to move along. var center = new Point(50, 50); var points = 5; var radius1 = 80; var radius2 = 200; var star = new Path.Star(center, points, radius1, radius2); star.fillColor = 'white'; star.strokeColor = 'red'; star.applyMatrix=false; //var path= new Path.Circle({center:view.center,radius:250,strokeColor:"black"}); var path= new Path.Ellipse({point:view.center-[200,200],size: new Size(400,200),strokeColor:"black"}); function onFrame(event){ var slowness=400; var time=event.count % slowness /slowness; updateRect(time);} function updateRect(time){ var point=path.getPointAt(time*path.length); var tangent=path.getTangentAt(time*path.length); //console.log("tangent",tangent); star.position=point; star.rotation=tangent.angle; star.scaling=Math.abs(tangent.angle)/90; star.strokeWidth=Math.abs(tangent.angle)/2; updateSvg(); } function updateSvg(){ var svg1=document.querySelector("#svg1"); svg1.innerHTML=""; var svg=project.activeLayer.exportSVG(); svg1.appendChild(svg); } </script> </head> <body> <canvas id="myCanvas"></canvas> <svg id="svg1"></svg> </body> </html>
반응형
'svg' 카테고리의 다른 글
svg paper.js clipped: group (3) | 2024.02.28 |
---|---|
svg raster; (1) | 2024.02.27 |
svg paper.js ellipse:move event and trace (0) | 2024.02.25 |
svg paper.js sine curve: onDoubleClick event; (0) | 2024.02.23 |
svg path parser: (0) | 2024.02.21 |