径向渐变
<template> | |
<canvas width="600" height="600" id="canvas" style="border: 1px solid #ccc;"></canvas> | |
</template> | |
<script setup> | |
import { onMounted } from 'vue' | |
import { fabric } from 'fabric' | |
function init() { | |
let canvas = new fabric.Canvas('canvas') // 实例化fabric,并绑定到canvas元素上 | |
// 圆 | |
let circle = new fabric.Circle({ | |
left: 100, | |
top: 100, | |
radius: 50, | |
}) | |
let gradient = new fabric.Gradient({ | |
type: 'radial', | |
coords: { | |
r1: 50, // 该属性仅径向渐变可用,外圆半径 | |
r2: 0, // 该属性仅径向渐变可用,外圆半径 | |
x1: 50, // 焦点的x坐标 | |
y1: 50, // 焦点的y坐标 | |
x2: 50, // 中心点的x坐标 | |
y2: 50, // 中心点的y坐标 | |
}, | |
colorStops: [ | |
{ offset: 0, color: '#fee140' }, | |
{ offset: 1, color: '#fa709a' } | |
] | |
}) | |
circle.set('fill', gradient); | |
canvas.add(circle) | |
} | |
onMounted(() => { | |
init() | |
}) | |
</script> |
r1
、r2
、x1
、y1
、x2
、y2
这几个参数可以自己修改值然后看看效果,自己亲手改一下会理解得更深刻。
我之前在其他论坛上面看到有人说 Fabric.js
并没有提供径向渐变的用法。
径向渐变的例子,在官网上并没有给出。但实际是可以使用径向渐变的。