Skip to content

RadialGradient

径向渐变对象, 可以用于填充与描边。

关键属性

type: string

填充类型为 radial

from?: IAlign | IUnitPointData

渐变的起始控制点,相对元素的实际内容定位, 默认为 center。

方向图

ts
// 方位
type IAlign =
  | 'top-left'
  | 'top'
  | 'top-right'
  | 'right'
  | 'bottom-right'
  | 'bottom'
  | 'bottom-left'
  | 'left'
  | 'center'

from: 'center'

// 坐标点
interface IUnitPointData {
  type?: 'percent' | 'px'
  x: number
  y: number
}

from: {
  type: 'percent',
  x: 0.5, // 50% width  百分比坐标点
  y: 0.5, // 50% height
}

from: {
  x: 50, // 50px 像素值坐标点
  y: 50, // 50px
}

to?: IAlign | IUnitPointData

渐变的末端控制点,相对元素的实际内容定位, 默认为 bottom。

stretch: number

垂直于 from -> to 拉伸,相对图形的宽度比例, 使渐变形成椭圆形, 默认为 1。

stops: ColorStop[] | StringColor[]

渐变色标数组。

如果设置纯字符串颜色的数组,将会自动计算 offset。

基础属性

blendMode?: BlendMode

混合模式,默认为 normal。

visible?: boolean

是否可见,默认为 true。

opacity?: number

不透明度,默认为 1,暂时仅针对渐变色标中 color 为 颜色对象 有效。

归属

UI

示例

默认方向

从中心 -> 底部居中垂直绘制的渐变

ts
import { Leafer, Rect } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({
    width: 100,
    height: 100,
    fill: {
        type: 'radial',
        stops: [{ offset: 0.2, color: '#FF4B4B' }, { offset: 1, color: '#FEB027' }]
    },
})

leafer.add(rect)

控制方向

从左上角 -> 中心呈 45 度绘制的渐变。

ts
import { Leafer, Rect } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({
    width: 100,
    height: 100,
    fill: {
        type: 'radial',
        from: { type: 'percent', x: 0.2, y: 0.2 },
        to: { type: 'percent', x: 0.8, y: 0.8 },
        stops: ['#FF4B4B', '#FEB027']
    },
})

leafer.add(rect)

拉伸渐变

从中心 -> 右上角 呈 45 度, 且拉伸比例为 0.5 绘制的渐变。

ts
import { Leafer, Rect } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({
    width: 100,
    height: 100,
    fill: {
        type: "radial",
        to: 'bottom-right',
        stretch: 0.5,
        stops: [{ offset: 0, color: '#FF4A2C' }, { offset: 1, color: '#FEB027' }]
    }
})

leafer.add(rect)

设置透明度

一般用于多个填充做叠加效果。

opacity 暂时只对 color 为 颜色对象 有效, 或直接使用 rgba(255,75,75,0,5) 字符串颜色。

ts
import { Leafer, Rect } from 'leafer-ui'

const leafer = new Leafer({ view: window })

const rect = new Rect({
    width: 100,
    height: 100,
    fill: {
        type: 'radial',
        opacity: 0.5,
        stops: [
            { offset: 0, color: { r: 255, g: 75, b: 75 } },
            { offset: 1, color: { r: 254, g: 176, b: 39 } }
        ]
    },
})

leafer.add(rect)

Released under the MIT License.