我已創建使用pathData
方法[demo]的線。我想讓這條線在onFrame
函數中生成一個小波浪效果。另外,當onMouseDrag
功能時,該線將是橡皮條效應,並且當onMouseUp
功能時它將返回到原始形狀。我是Paper.js的新手,所以當我編寫一些代碼時,我會獲得失去物體形狀的動畫。檢查以下代碼Paper.js pathData動畫onFrame和onMouseDrag
代碼更新
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 ^^
任何paperJs高手請幫我實現它。將不勝感激,感謝提前。
您已經創建了用於處理波浪效果的原始路徑的副本,我有點困惑,原始副本是所有轉換的基礎,第一個副本是onFrame處理程序中的波浪效果,第二個副本是通過拖動鼠標操作的第三組數據,然後什麼是「3.您正在渲染的線路」。這是正確的方式還是你可以清楚簡單的方法@ oliver – Krish
@Krish我更新了小提琴來說明我的意思。希望它現在更清晰:) https://jsfiddle.net/uq4ygujx/2/ –
@Krish因爲它非常有趣,我繼續並調整了你的'onDrag'以使用拖動的實際方向矢量操作。它仍然不是完美的,但我希望你會*使它完美;)https://jsfiddle.net/uq4ygujx/3/乾杯 –