pathData
メソッド[demo]を使用して線を作成しました。私は、onFrame
機能で小さな波の効果をアニメーション化したいと思っています。また、onMouseDrag
機能時はラバーバンド効果となり、onMouseUp
機能時は元の形状に戻ります。私はPaper.jsの初心者ですので、いくつかのコードを書くとオブジェクトの形状が失われたアニメーションが得られます。コードの下にチェックPaper.js pathData animation onFrameとonMouseDrag
コードはどれpaperJsの専門家は、それを達成するために私を助けてください
var amount = 55;
var center = view.center;
function onFrame(event) {
// Loop through the segments of the path:
for (var i = 0; i <= amount; i++) {
var path = linePath;
var segment = path.segments[i];
// A cylic value between -1 and 1
var sinus = Math.sin(event.time * 3 + i);
// Change the y position of the segment point:
segment.point.y = sinus * 1 + center.y;
}
}
function onMouseDrag(event) {
var location = linePath.getNearestLocation(event.point);
var segment = location.segment;
var point = segment.point;
if (!point.fixed && location.distance < 600/4) {
var y = event.point.y;
point.y += (y - point.y)/6;
if (segment.previous && !segment.previous.fixed) {
var previous = segment.previous.point;
previous.y += (y - previous.y)/24;
}
if (segment.next && !segment.next.fixed) {
var next = segment.next.point;
next.y += (y - next.y)/24;
}
}
}
Live demo ^^
を更新しました。助けていただければ幸いです。
波の効果を操作するための元の行パスのコピーを作成しました。元のコピーがすべての変換の基礎であることが少しわかりました。最初のコピーはonFrameハンドラの波効果で、 3番目のデータセットはマウスでドラッグして操作し、次に「3.レンダリングしているラインパス」となります。それは正しい方法か、少し単純な方法をクリアすることができますか?@ oliver – Krish
@Krish私は私が何を意味するかを説明するためにフィドルを更新しました。うまくいけば、今は少しはっきりしています:) https://jsfiddle.net/uq4ygujx/2/ –
@Krishとても楽しかったので、私は先に進み、onDragを調整してドラッグの実際の方向ベクトルを使用しました。操作。まだまだ完璧ではありませんが、完璧にすることを願っています; https://jsfiddle.net/uq4ygujx/3/ Cheers –