在查資料的過程中更認識了跟 fabric.js 有點像的 Paper.js 這個酷東西,我們在fabric.js 上休息一下,小小介紹一下他吧~
Paper.js 跟 fabric.js 一樣也是一個開源專案。
是一個向量圖形腳本框架,是專為 HTML5 Canvas 設計的 Js 庫,用於創建和操作複雜的向量圖形。
Paper.js 專注於向量圖形的創建和操作,這使得它特別適合於需要高精度和可縮放性的圖形設計。
可以複雜路徑操作:
從他官網首頁就以展示互動性與向量的控制這件事了
// 創建一個簡單的圓形
var circle = new Path.Circle({
center: view.center,
radius: 50,
fillColor: 'blue'
});
// 添加鼠標事件
circle.onMouseEnter = function() {
this.fillColor = 'red';
}
circle.onMouseLeave = function() {
this.fillColor = 'blue';
}
// 創建動畫
function onFrame(event) {
circle.scale(Math.sin(event.count / 30) * 0.05 + 1);
}
其實物件導向的方式跟 fabric.js 蠻像的?只是物件的創建命名跟使用 api 的方式有點不同。
Paper.js 的強項在於處理複雜的向量圖形和路徑操作。它的數學庫和路徑操作功能特別強大,使得創建和操作複雜形狀變得相對容易。
在這方面效能表現優秀。
對於需要精確控制和高度自定義圖形的項目來說,Paper.js 是一個很好的選擇。
設計理念:
功能重點:
學習曲線:
主要還是看你的需求是要做什麼樣的東西?
處理很多飛來飛去的視覺藝術動畫、向量操作 => Paper.js
使用者簡單編輯圖像、畫面與物件的互動等操作性較高的需求 => Fabric.js