around
围绕 around 点绘制元素,类似于游戏引擎中的 anchor 锚点功能。
图中将元素内部的 around 坐标点(中心位置) , 移动到元素的 (x,y) 坐标对齐放置并旋转 30 度。
与 origin 的区别: 多了一个步骤,会把元素内部的 around 点移动到 (x,y) 坐标对齐。
关键属性
around: IAlign
| IUnitPointData
元素内部的 around 点,相对元素的实际内容定位,基础元素及 Group 均支持。
ts
// 方位
type IAlign =
| 'top-left'
| 'top'
| 'top-right'
| 'right'
| 'bottom-right'
| 'bottom'
| 'bottom-left'
| 'left'
| 'center'
rect.around = 'center'
// 坐标点
interface IUnitPointData {
type?: 'percent' | 'px'
x: number
y: number
}
rect.around = {
type: 'percent',
x: 0.5, // 50% width 百分比坐标点
y: 0.5, // 50% height
}
rect.around = {
x: 50, // 50px 像素值坐标点
y: 50, // 50px
}
归属
UI
示例
围绕坐标(50,50) 为中心进行绘制
ts
import { Leafer, Rect, Frame } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({
x: 50,
y: 50,
width: 50,
height: 50,
around: 'center',
draggable: true,
fill: '#4DCB71'
})
leafer.add(new Frame({ width: 100, height: 100, fill: '#FF4A2C', children: [rect] }))
围绕坐标(50,50) 为中心缩放 1.5 倍
ts
import { Leafer, Rect, Frame } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({
x: 50,
y: 50,
width: 50,
height: 50,
around: 'center',
scale: 2, // scaleX = scaleY = 2
draggable: true,
fill: '#4DCB71'
})
leafer.add(new Frame({ width: 100, height: 100, fill: '#FF4A2C', children: [rect] }))
围绕坐标(50,50) 为中心旋转 45 度
ts
import { Leafer, Rect, Frame } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({
x: 50,
y: 50,
width: 50,
height: 50,
around: 'center',
rotation: 45,
draggable: true,
fill: '#4DCB71'
})
leafer.add(new Frame({ width: 100, height: 100, fill: '#FF4A2C', children: [rect] }))
围绕坐标(50,50) 为中心倾斜 45 度
ts
import { Leafer, Rect, Frame } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({
x: 50,
y: 50,
width: 50,
height: 50,
around: 'center',
skewX: 45,
draggable: true,
fill: '#4DCB71'
})
leafer.add(new Frame({ width: 100, height: 100, fill: '#FF4A2C', children: [rect] }))
around 坐标点(50,50) 在矩形的右下角
ts
import { Leafer, Rect, Frame } from 'leafer-ui'
const leafer = new Leafer({ view: window })
const rect = new Rect({
x: 50,
y: 50,
width: 50,
height: 50,
around: 'bottom-right',
draggable: true,
fill: '#4DCB71'
})
leafer.add(new Frame({ width: 100, height: 100, fill: '#FF4A2C', children: [rect] }))