最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue中使用canvas繪圖詳解

 更新時(shí)間:2024年09月06日 09:04:02   作者:@小魚游啊游  
這篇文章主要介紹了vue中使用canvas繪圖方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

canvas基本使用

HTML5 的 <canvas> 元素使用 JavaScript 在網(wǎng)頁上繪制圖像。

畫布是一個(gè)矩形區(qū)域,您可以控制其每一像素。

canvas 擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。

路徑線段

<template lang="pug">
    div
    	// 規(guī)定矩形區(qū)域的寬和高
        <canvas id="myCanvas" width="500" height="300"></canvas>
</template>

<script>
export default {
    data() {
        return {}
    },
    mounted() {
        this.xianDuan()
    },
    methods: {
        xianDuan(){
            var canvas = document.getElementById("myCanvas");
            var ctx = canvas.getContext("2d");
            ctx.moveTo(0,0);      // moveTo(x,y) 定義線條開始坐標(biāo)
            ctx.lineTo(200,100);  // lineTo(x,y) 定義線條結(jié)束坐標(biāo)
            ctx.stroke();
        },
    }
}
</script>

運(yùn)行效果:

三角形

  • 無填充色
mounted() {
	this.sanJiaoXing()
},
methods: {
    sanJiaoXing(){
        var canvas = document.getElementById('myCanvas');
        var ctx = canvas.getContext("2d");
        ctx.beginPath();
        ctx.moveTo(0, 0);
        ctx.lineTo(100, 200);
        ctx.lineTo(400, 200);
        ctx.lineTo(0, 0);
        ctx.stroke();     // 無填充色
    },
}

運(yùn)行效果:

  • 有填充色
mounted() {
	this.sanJiaoXing()
},
methods: {
    sanJiaoXing(){
        var canvas = document.getElementById('myCanvas');
        var ctx = canvas.getContext("2d");
        ctx.beginPath();
        ctx.moveTo(0, 0);
        ctx.lineTo(100, 200);
        ctx.lineTo(400, 200);
        ctx.lineTo(0, 0);
        ctx.fill();     // 有填充色
    },
}

使用 arc() 方法 繪制一個(gè)圓:

mounted() {
    this.yuan()
},
methods: {
    yuan() {
        var c=document.getElementById("myCanvas");
        var ctx=c.getContext("2d");
        ctx.beginPath();
        ctx.arc(95,50,40,0,2*Math.PI);    // Math.PI圓周率π = 3.14 = 180°
        ctx.stroke();
    },
}

  • canvas實(shí)現(xiàn)笑臉
mounted() {
    this.xiaoLian()
},
methods: {
    xiaoLian() {
        let canvas = document.getElementById('myCanvas');
        let ctx = canvas.getContext('2d');
        ctx.beginPath();
        ctx.arc(75, 75, 50, 0, Math.PI * 2, true); // 繪制
        ctx.moveTo(110, 75);
        ctx.arc(75, 75, 35, 0, Math.PI, false); // 口(順時(shí)針)
        ctx.moveTo(65, 65);
        ctx.arc(60, 65, 5, 0, Math.PI * 2, true); // 左眼
        ctx.moveTo(95, 65);
        ctx.arc(90, 65, 5, 0, Math.PI * 2, true); // 右眼
        ctx.stroke();
    },
}

字體

mounted() {
    this.ziTi()
},
methods: {
    ziTi() {
        let canvas = document.getElementById("myCanvas");
        let ctx = canvas.getContext("2d");
        ctx.font="30px Arial";       // 設(shè)置字體及大小
        ctx.fillText("Hello World 泥巴巴", 10, 150);    // 實(shí)心文字
        ctx.strokeText("Hello World 泥巴巴", 10, 180);  // 空心文字
    }
}

漸變

mounted() {
    this.jianBian()
},
methods: {
    jianBian() {
        let canvas = document.getElementById("myCanvas");
        let ctx = canvas.getContext("2d");
        var grd = ctx.createLinearGradient(0, 0, 200,0);  // 設(shè)置漸變
        grd.addColorStop(0,"red");   // 漸變起始顏色
        grd.addColorStop(1,"orange");   // 漸變結(jié)束色
        ctx.fillStyle = grd;         // 填充色
        ctx.fillRect(10,10,200,100); // (x,y,width,height) 矩形坐標(biāo)和寬高
    }
}

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Vue 2.X的狀態(tài)管理vuex記錄詳解

    Vue 2.X的狀態(tài)管理vuex記錄詳解

    這篇文章主要介紹了Vue 2.X的狀態(tài)管理vuex記錄的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家的理解和學(xué)習(xí)具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Vue3 響應(yīng)式 API 及 reactive 和 ref 的用法示例詳解

    Vue3 響應(yīng)式 API 及 reactive 和 ref&

    響應(yīng)式是一種允許以聲明式的方式去適應(yīng)變化的編程范例,這篇文章主要介紹了關(guān)于Vue3響應(yīng)式API及reactive和ref的用法,需要的朋友可以參考下
    2023-06-06
  • vue中的vue-print-nb如何實(shí)現(xiàn)頁面打印

    vue中的vue-print-nb如何實(shí)現(xiàn)頁面打印

    這篇文章主要介紹了vue中的vue-print-nb如何實(shí)現(xiàn)頁面打印,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue+video.js視頻播放、視頻切換、視頻斷點(diǎn)分段上傳功能

    vue+video.js視頻播放、視頻切換、視頻斷點(diǎn)分段上傳功能

    本次需求是做一個(gè)視頻列表,點(diǎn)擊視頻列表播放對(duì)應(yīng)視頻;同時(shí)要求實(shí)現(xiàn)斷點(diǎn)分段上傳大文件(視頻)的功能,今天通過本文給大家講解下vue+video.js視頻播放、視頻切換、視頻斷點(diǎn)分段上傳功能,感興趣的朋友一起看看吧
    2022-12-12
  • vxe-table中vxe-grid中的合并單元格方式(合并行、列)

    vxe-table中vxe-grid中的合并單元格方式(合并行、列)

    這篇文章主要介紹了vxe-table中vxe-grid中的合并單元格方式(合并行、列),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • vue2.0 實(shí)現(xiàn)頁面導(dǎo)航提示引導(dǎo)的方法

    vue2.0 實(shí)現(xiàn)頁面導(dǎo)航提示引導(dǎo)的方法

    下面小編就為大家分享一篇vue2.0 實(shí)現(xiàn)頁面導(dǎo)航提示引導(dǎo)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 關(guān)于下拉類型多選組件Vue-Treeselect(鍵名轉(zhuǎn)換)

    關(guān)于下拉類型多選組件Vue-Treeselect(鍵名轉(zhuǎn)換)

    這篇文章主要介紹了關(guān)于下拉類型多選組件Vue-Treeselect(鍵名轉(zhuǎn)換),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue如何監(jiān)聽對(duì)象或者數(shù)組某個(gè)屬性的變化詳解

    vue如何監(jiān)聽對(duì)象或者數(shù)組某個(gè)屬性的變化詳解

    這篇文章主要給大家介紹了關(guān)于vue如何監(jiān)聽對(duì)象或者數(shù)組某個(gè)屬性的變化,在Vue.js中可以通過watch監(jiān)聽屬性變化并動(dòng)態(tài)修改其他屬性的值,watch通過監(jiān)聽器函數(shù)接收新舊值,實(shí)現(xiàn)屬性間的數(shù)據(jù)聯(lián)動(dòng),需要的朋友可以參考下
    2024-12-12
  • vue在線預(yù)覽word、excel、pdf、txt、圖片的方法實(shí)例

    vue在線預(yù)覽word、excel、pdf、txt、圖片的方法實(shí)例

    最近工作中遇到了一個(gè)需要在線預(yù)覽文件的需求,所以這篇文章主要給大家介紹了vue在線預(yù)覽word、excel、pdf、txt、圖片的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-11-11
  • vue腳手架配置預(yù)渲染及prerender-spa-plugin配置方式

    vue腳手架配置預(yù)渲染及prerender-spa-plugin配置方式

    這篇文章主要介紹了vue腳手架配置預(yù)渲染及prerender-spa-plugin配置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05

最新評(píng)論

阿拉善盟| 资兴市| 蒙城县| 上思县| 宜兰市| 凤山市| 南皮县| 绥江县| 永春县| 万山特区| 清徐县| 榕江县| 海兴县| 濉溪县| 璧山县| 子长县| 泉州市| 北安市| 穆棱市| 永州市| 宜城市| 革吉县| 井陉县| 和政县| 宝清县| 绥芬河市| 高唐县| 新疆| 方山县| 高碑店市| SHOW| 柞水县| 平原县| 方正县| 珲春市| 晋州市| 郑州市| 合阳县| 德兴市| 蓬溪县| 秀山|