Skip to content

Canvas 画布组件

用于绘制和操作图形的画布组件,统一写法,适配PC端鼠标事件

支持平台

安卓iosweb微信小程序支付宝小程序QQ小程序
xxx

示例

html
<template>
	<t-page title="画布" class="p.30">
		<t-card title="Canvas 画布" class="mb.30" sub-title="统一写法"></t-card>
		<t-canvas class='tdb-h.400-tdr-mb.30' @initFinished="initFun"></t-canvas>
	</t-page>
</template>

<script setup>
	import { TuiTouchEvent } from '@/uni_modules/t-ui/';
	function drawRoundedRect(ctx : CanvasRenderingContext2D, x : number, y : number, width : number, height : number, radius : number) {
		ctx.fillStyle = '#007BFF';
		// ctx.beginPath();
		ctx.moveTo(x, y + radius);
		ctx.arcTo(x, y + height, x + radius, y + height, radius);
		ctx.arcTo(x + width, y + height, x + width, y + height - radius, radius);
		ctx.arcTo(x + width, y, x + width - radius, y, radius);
		ctx.arcTo(x, y, x, y + radius, radius);
		// ctx.closePath();
		ctx.fill();
		ctx.stroke()
		
	}
	function initFun(ctx : CanvasContext) {
		drawRoundedRect(ctx.getContext('2d')!, 10, 10, 50, 30, 15)
		// ctx.save()
		// ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height)
		// ctx.beginPath()
		// ctx.lineWidth = 2
		// ctx.arc(75, 75, 50, 0, Math.PI * 2, true)
		// ctx.moveTo(110, 75)
		// ctx.arc(75, 75, 35, 0, Math.PI, false)
		// 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()
		// ctx.restore()
	}
</script>

Props

名称描述类型默认值可选值
-----

Events

事件名描述回调参数版本
initFinished画布初始化完成后触发CanvasContext-

Methods

名称描述返回类型
toDataURL转换画布内容为DataURLPromise:String

Slots

名称描述
--