Skip to content

Quick Conversion ​

Quick conversion between world coordinates, local coordinates, and inner coordinates. The input coordinates are modified directly. Methods for simple conversion are also provided.

Supports converting movement distance.

Key Methods ​

worldToInner ( worldPoint:IPointData ) ​

Convert world coordinates to inner coordinates, directly modifies world.

worldToLocal ( worldPoint: IPointData ) ​

Convert world coordinates to local coordinates, directly modifies world.

innerToWorld ( innerPoint: IPointData ) ​

Convert inner coordinates to world coordinates, directly modifies inner.

localToWorld ( localPoint: IPointData ) ​

Convert local coordinates to world coordinates, directly modifies local.

Optional Parameters ​

All conversion methods support the following.

Do not modify coordinates directly ​

Second optional parameter: to?: IPointData, used to store the converted result.

Convert movement distance ​

Third optional parameter: distance?: boolean

Relative element ​

Fourth optional parameter: relative?: UI

Treat the relative element as the world coordinate system, enabling conversion between a child and any parent coordinate system.

Belongs To ​

UI Element ​

Examples ​

Convert to local coordinates ​

ts
// #快速坐标转换 [世界坐标转本地坐标]
import { Group, Leafer, Rect } from 'leafer-ui'

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

const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
const group = new Group({ x: 100, y: 100, scaleX: 2, scaleY: 2, children: [rect] })

leafer.add(group)

// 世界坐标转本地坐标
const point = { x: 100, y: 100 }
rect.worldToLocal(point)

console.log(point) // {x: 0, y: 0}

Convert movement distance to local ​

ts
// #快速坐标转换 [世界坐标中的移动距离 转 本地坐标移动距离]
import { Group, Leafer, Rect } from 'leafer-ui'

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

const rect = new Rect({ x: 100, y: 100, fill: '#32cd79', draggable: true })
const group = new Group({ x: 100, y: 100, scaleX: 2, scaleY: 2, children: [rect] })

leafer.add(group)

// 世界坐标中的移动距离 转 本地坐标移动距离
const worldMove = { x: 10, y: 10 }
const localMove = { x: 0, y: 0 }
rect.worldToLocal(worldMove, localMove, true)

console.log(localMove) // {x: 5, y: 5}

Released under the MIT License.