1. 程式人生 > >【開源】Skatch 正式釋出

【開源】Skatch 正式釋出

skatch

極速渲染抽象派草圖

DEMO

簡介

Skatch 這個詞由 sketch wechart abstract cax 混合而成的一個新詞,代表了cax wechart 抽象藝術派派草圖渲染器。說得直白一點就是npm 上 sketch 被 tj 佔了,只能強行加上賦予某些意義合成 skatch 這個詞。關於我的合成詞的相關庫最滿意的非 pasition (path transition) 莫屬了。

使用

const skatch = new Skatch({
  randomRange: 10,      //點的抖動範圍
  
  strokeRepeat: 12,   //重複繪製的次數
  strokeWidth: 1,      //繪製線寬
  strokeStyle: 'black',//繪製顏色

  gap: 5, //填充線的間距
  fillAngle: -45,//填充線的角度
  curveRange: 45, //填充線扭曲範圍
  fillWidth: 1, //填充線的線寬
  fillRepeat: 2,//填充線重複填充的次數
  fillStyle: '#6aa8df',//填充線的顏色

  filter: 1 //繪製 path 的時候過濾的比例,範圍是 (0-1)
})

skatch.circle(310, 280, 50)
stage.add(skatch)
stage.update()

由於 skatch 是 cax 自定義 Element(繼承自 cax.Group),所以擁有設定所有屬性的能力,如下所示:

Transform

屬性名 描述
x 水平偏移
y 豎直偏移
scaleX 水平縮放
scaleY 豎直縮放
rotation 旋轉
skewX 歪斜 X
skewY 歪斜 Y
originX 旋轉基點 X
originY 旋轉基點 Y

Alpha

屬性名 描述
alpha 元素的透明度

注意這裡父子都設定了 alpha 會進行乘法疊加。

compositeOperation

屬性名 描述
compositeOperation 源影象繪製到目標影象上的疊加模式

注意這裡如果自身沒有定義 compositeOperation 會進行向上查詢,找到最近的定義了 compositeOperation 的父容器作為自己的 compositeOperation。

Cursor

屬性名 描述
cursor 滑鼠移上去的形狀

Fixed

屬性名 描述
fixed 是否固定定位,預設是 false 設定成 true 不會疊加祖輩們的 transform 屬性

Shadow

屬性名 描述
shadow 陰影

使用方式:

obj.shadow = {
    color: '#42B035',
    offsetX: -5,
    offsetY: 5,
    blur: 10
}

skatch 共擁有如下方法進行草圖繪製:

  • rect
  • circle
  • ellipse
  • path
  • strokeRect
  • strokeCircle
  • strokeEllipse
  • strokePath
  • fillRect
  • fillCircle
  • fillEllipse
  • fillPath

可以這麼理解: rect === strokeRect + fillRect 。其他的形狀以此類推。

與 rough 的異同

Rough 是非常著名的草圖渲染庫,看上去 skatch 和 rough 非常類似,但是有著本質的不同。

  • Rough 使用純數學進行繪製前的計算(比如線段與線段、線段與圓、線段與橢圓等)
  • Skatch 使用 簡單計算 + clip + 圖層合成 + 座標 shake

看上去 skatch 過程複雜?所以速度更慢?大錯特錯!Skatch clip 和 圖層的行為都是純影象處理,在 GPU 中完成,有硬體加速,小部分任務在 CPU 中完成。
也可以這樣理解 rough 主要計算放在 CPU,skatch主要計算放在了 GPU。Skatch 具體的原理等待我的教程。

Star & Follow

微信交流群【2】

Tencent Wechat

License

MIT

相關推薦

開源Skatch 正式釋出

極速渲染抽象派草圖 DEMO 簡介 Skatch 這個詞由 sketch wechart abstract cax 混合而成的一個新詞,代表了cax wechart 抽象藝術派派草圖渲染器。說得直白一點就是npm 上 sketch 被 tj 佔了,只能強行加上賦予某些意義合成 skatch 這

開源Qone 正式釋出,使 javascript 支援 .NET LINQ

Qone 下一代 Web 查詢語言,使 javascript 支援 LINQ 緣由 最近剛好修改了騰訊文件 Excel 表格公式的一些 bug,主要是修改公式的 parser 。比如下面的指令碼怎麼轉成 javascript 執行? = IF(SUM(J6:J7) + SUM(J6:J7) > 10,

開源Westore Cloud 釋出- 沒後端沒SQL沒DBA,只需 javascript 開發雲端小程式

Westore Cloud - 隱形雲,NoBackEnd,NoSql,HiddenDB 好的設計便是感覺不到設計的存在 開發小程式,但是:沒有後端!沒有運維!沒有 DBA!沒有域名!沒有證書!沒有錢!沒有精力! 沒關係,會 javascript 就可以,Westore Cloud 帶你起飛~~ Gith

開源騰訊 Omi-chart 正式釋出

v1.0.1 omi-chart 一個 chart-x 標籤搞定資料視覺化, omi 和 chart.js強力加持 支援的圖表 <chart-bar /> 柱狀圖 <chart-line /> 線圖 <chart-scatter

開源騰訊 Omio 釋出 - 全面相容 IE9 和移動端

寫在前面 在微信支付、手機QQ、騰訊TEG、騰訊IEG等團隊已經能夠使用 Omi 應用於大量的 to b 的專案以及內部管理系統,為了達到 Omi 全覆蓋,相容 to c 端各種瀏覽器環境,所以有了 Omio, 擁有幾乎和 Omi 一模一樣的語法。 相容老瀏覽器的 Omi 版本,→ Github

開源騰訊 omi-mp-create 釋出 - 極小卻精巧的小程式框架

【開源】騰訊 omi-mp-create 釋出 極小卻精巧的小程式框架,對小程式入侵性幾乎為零 → Github omi-mp-create 和 omio 一樣,使用了 omi packages 裡的 obaa 監聽資料變化自動更新檢視。和早期釋出的 westore 對比的話,

開源小程式、小遊戲和Web運動引擎 to2to 釋出

簡單輕量跨平臺的 Javascript 運動引擎 to2to 中文念 '兔兔兔',作為 cax 內建的運動套件獨立出一個package ,因為它本身可以和平臺環境運動物件無關。既可運動 dom,也可運動 cax 內建物件,也可運動物件子面量。眾所周知,運動需要迴圈的 tick 去不斷執行偏移函式,小程式

開源NodeJS仿WebApi路由

ole ati amt nbsp amd 使用 ise erp 一個 用過WebApi或Asp.net MVC的都知道微軟的路由設計得非常好,十分方便,也十分靈活。雖然個人看來是有的太靈活了,team內的不同開發很容易使用不同的路由方式而顯得有點混亂。 不過這不是重點,我在

開源OSharp框架學習系列(1):總體設計及系列導航

正是 html 組織 內聚性 權限 是什麽 enc 3-0 分發 OSharp是什麽?   OSharp是個快速開發框架,但不是一個大而全的包羅萬象的框架,嚴格的說,OSharp中什麽都沒有實現。與其他大而全的框架最大的不同點,就是OSharp只做抽象封裝,不做實現。依賴註

開源Tsar——靈活的系統和應用采集軟件

什麽 span 問題 我們 value scn 自定義 agent 告訴 摘要: 在開源人的盛會LinuxCon + ContainerCon + CloudOpen中國(簡稱LC3)大會上,阿裏雲CDN團隊的空見(花名),為大家分享了開源的系統和應用采集軟件Tsar的背景

ArcGisArcGisServeran安裝釋出

ArcGisServer 安裝 建立主站點管理員賬戶 安裝後的主站地址為http://localhost:6080/arcgis/manager/,也可以在arcgis安裝目錄中找到Manager.html檔案開啟. 進入網站後 點選建立新站點

Linux使用Nginx釋出dotnet的網站

1.安裝Nginx【自行百度】 2.安裝dotnet執行時【自行百度】 3.配置Nginx——  /etc/nginx/conf.d/default.conf server { listen 80; server_name localhost;

netcore解決 VS2017釋出時遇到的一些問題(webdeploy)

1.基礎連線已經關閉: 未能為 SSL/TLS 安全通道建立信任關係。根據驗證過程,遠端證書無效。 解決:csproject 新增以下屬性允許非信任證書部署即可  <PropertyGroup>     <AllowUntrustedCertificat

在JitPack釋出自己的Android庫

原文地址:https://www.jitpack.io/docs/ANDROID/ 為了在JitPack上釋出你的Android庫,你只需要在你的Git倉庫中有一個可用的構建檔案。 Android SDK在構建環境中可用,並且在構建開始時已經設定了ANDROID_HOME變數。版本預

開源Android開源專案:始終

介,,介紹 內個什麼,這是一個 Android 平臺的 APP,專案基於 RxAndroid+Retrofit+Glide 開發,使用MVP架構(好像大家都喜歡這麼寫…)。 最近經濟什麼的不太好大家都知

開源C#跨平臺物聯網通訊框架ServerSuperIO(SSIO)

目       錄 C#跨平臺物聯網通訊框架ServerSuperIO(SSIO)正式開源... 1 1.      SSIO的特點 2.      SSIO概述 3.      SSIO與SIO的區別 4.      控制模式 5.      跨平臺Windows和Linux

循序漸進學.Net Core Web Api開發系列7:專案釋出到CentOS7

系列目錄 一、概述 本篇討論如何把專案釋出到Linux環境,主要包括以下內容: 1、專案打包 2、配置Nginx轉發 3、配置守護服務Supervisor 在介紹實際內容前,有兩個疑問需要探討一下: 1、我們的專案釋出後可以自宿主執行,為什麼要配置nginx轉發? 答:nginx是

開源C#.NET股票歷史資料採集,附18年曆史資料和原始碼

重點重點:我沒有買股票,沒有買股票,股市是個坑,小心割韭菜哦。 本文的初衷是資料分析(分析結果就不說了,就是想看看篩選點資料),只不過搞下來發現比我想象的要簡單多了。本文采集的資料是:2000年到2018年2月份,上證和深證交易所所有的上市股票交易資料,按天採集,不是小時哦,有興趣的朋友,可以稍微改

開源分享2011-2015年全國城市歷史天氣資料庫Sqlite+C#訪問程式

    由於個人研究需要,需要採集天氣歷史資料,前一篇文章:C#+HtmlAgilityPack+XPath帶你採集資料(以採集天氣資料為例子),介紹了基本的採集思路和核心程式碼,經過1個星期的採集,歷史資料庫基本全了,現在開放該資料庫,目的是為了讓可能需要該型別做相關研究準備的,至於實時天氣的採集本專案

開源微信小程式、小遊戲以及 Web 通用 Canvas 渲染引擎

Cax 小程式、小遊戲以及 Web 通用 Canvas 渲染引擎 特性 Learn Once, Write Anywhere(小程式、小遊戲、PC Web、Mobile Web) 支援小程式、小遊戲以及 Web 瀏覽器渲染 小程式、小遊戲和 Web 擁有相同簡潔輕巧的 API 高效能的渲染架構 超輕量