佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > 淺談基于Canvas的手繪風(fēng)格圖形庫(kù)Rough.js

淺談基于Canvas的手繪風(fēng)格圖形庫(kù)Rough.js

熱門(mén)標(biāo)簽:網(wǎng)站建設(shè) 檢查注冊(cè)表項(xiàng) 阿里云 硅谷的囚徒呼叫中心 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 使用U盤(pán)裝系統(tǒng) 美圖手機(jī) 智能手機(jī)

前言

推薦一個(gè)基于Canvas的手繪風(fēng)格圖形JS庫(kù)。

Rough.js

Rough.js是一個(gè)輕量的(大約8k),基于Canvas的可以繪制出粗略的手繪風(fēng)格庫(kù)。

提供繪制線條、曲線、弧線、多邊形、圓形和橢圓的基礎(chǔ)能力,同時(shí)支持繪制SVG路徑。

Github:https://github.com/pshihn/rough

安裝

下載鏈接:https://github.com/pshihn/rough/tree/master/dist

NPM

npm install --save roughjs

使用方法

const rc = rough.canvas(document.getElementById('canvas'));
rc.rectangle(10, 10, 200, 200); // x, y, width, height

線條和橢圓

rc.circle(80, 120, 50); // centerX, centerY, diameter
rc.ellipse(300, 100, 150, 80); // centerX, centerY, width, height
rc.line(80, 120, 300, 100); // x1, y1, x2, y2

填充

rc.circle(50, 50, 80, { fill: 'red' }); // fill with red hachure
rc.rectangle(120, 15, 80, 80, { fill: 'red' });
rc.circle(50, 150, 80, {
  fill: "rgb(10,150,10)",
  fillWeight: 3 // thicker lines for hachure
});
rc.rectangle(220, 15, 80, 80, {
  fill: 'red',
  hachureAngle: 60, // angle of hachure,
  hachureGap: 8
});
rc.rectangle(120, 105, 80, 80, {
  fill: 'rgba(255,0,200,0.2)',
  fillStyle: 'solid' // solid fill
});

草繪風(fēng)格

rc.rectangle(15, 15, 80, 80, { roughness: 0.5, fill: 'red' });
rc.rectangle(120, 15, 80, 80, { roughness: 2.8, fill: 'blue' });
rc.rectangle(220, 15, 80, 80, { bowing: 6, stroke: 'green', strokeWidth: 3 });

SVG 路徑

rc.path('M80 80 A 45 45, 0, 0, 0, 125 125 L 125 80 Z', { fill: 'green' });
rc.path('M230 80 A 45 45, 0, 1, 0, 275 125 L 275 80 Z', { fill: 'purple' });
rc.path('M80 230 A 45 45, 0, 0, 1, 125 275 L 125 230 Z', { fill: 'red' });
rc.path('M230 230 A 45 45, 0, 1, 1, 275 275 L 275 230 Z', { fill: 'blue' });

簡(jiǎn)單的SVG路徑

結(jié)合Web Workers

如果在網(wǎng)頁(yè)中有import Workly 這個(gè)Web Workers庫(kù),RoughJS會(huì)自動(dòng)將所有的操作轉(zhuǎn)移至web workers,來(lái)釋放UI主線程。這個(gè)在使用RoughJS來(lái)創(chuàng)建復(fù)雜繪圖(如地圖)時(shí)非常有用。詳細(xì)閱讀相關(guān)內(nèi)容 。

<script src="https://cdn.jsdelivr.net/gh/pshihn/workly/dist/workly.min.js"></script>
<script src="../../dist/rough.min.js"></script>

例子

https://github.com/pshihn/rough/wiki/Examples

API及文檔

https://github.com/pshihn/rough/wiki

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

標(biāo)簽:通遼 湘潭 黃山 湖北 煙臺(tái) 懷化 山南 賀州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談基于Canvas的手繪風(fēng)格圖形庫(kù)Rough.js》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    乐清市| 和平县| 大连市| 凤山市| 桦甸市| 九江县| 兴国县| 浦江县| 大荔县| 舒兰市| 呼伦贝尔市| 保山市| 贺州市| 如东县| 色达县| 涿鹿县| 廉江市| 德钦县| 大余县| 陆丰市| 阜康市| 广宗县| 安国市| 成安县| 集贤县| 高州市| 金坛市| 石景山区| 泊头市| 花莲县| 杂多县| 武陟县| 阜平县| 青铜峡市| 渑池县| 广灵县| 仪陇县| 浦县| 茂名市| 稻城县| 长寿区|