Matrix2D
Note:
Currently in the beta phase.
A matrix object capable of performing transformations such as scaling, rotation, and translation.
Import Module
import kit.ArkUI.*
class Matrix2D
public class Matrix2D {
public init(unit!: ?LengthMetricsUnit = None)
}
Description: A 2D transformation matrix supporting rotation, translation, and scaling on both X and Y axes.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
init(?LengthMetricsUnit)
public init(unit!: ?LengthMetricsUnit = None)
Description: Creates a Matrix2D object.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| unit | ?LengthMetricsUnit | No | None | Named parameter. Configures the unit mode of the Matrix2D object. Once configured, it cannot be dynamically changed. Configuration method is the same as CanvasRenderingContext2D. |
prop scaleX
public mut prop scaleX: ?Float64
Description: Horizontal scaling factor.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
prop scaleY
public mut prop scaleY: ?Float64
Description: Vertical scaling factor.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
prop rotateX
public mut prop rotateX: ?Float64
Description: Horizontal skew factor.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
prop rotateY
public mut prop rotateY: ?Float64
Description: Vertical skew factor.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
prop translateX
public mut prop translateX: ?Float64
Description: Horizontal translation distance.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
prop translateY
public mut prop translateY: ?Float64
Description: Vertical translation distance. Default unit: vp.
Type: ?Float64
Access: Read-Write
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
func identity()
public func identity(): This
Description: Creates an identity matrix.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
func invert()
public func invert(): This
Description: Returns the inverse matrix of the current matrix.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
func rotate(?Float64, ?Float64, ?Float64)
public func rotate(degree: ?Float64, rx!: ?Float64 = None, ry!: ?Float64 = None): This
Description: Performs right-multiplication rotation operation on the current matrix centered at the rotation point.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| degree | ?Float64 | No | - | Rotation angle in degrees. Positive values indicate clockwise rotation. Convert degrees to radians using degree * Math.PI / 180. Default unit: radians. |
| rx | ?Float64 | No | None | Named parameter. X-coordinate of the rotation point. Default unit: vp. |
| ry | ?Float64 | No | None | Named parameter. Y-coordinate of the rotation point. Default unit: vp. |
func translate(?Float64, ?Float64)
public func translate(tx!: ?Float64 = None, ty!: ?Float64 = None): This
Description: Performs left-multiplication translation operation on the current matrix.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| tx | ?Float64 | No | None | Named parameter. Horizontal translation distance. Default unit: vp. |
| ty | ?Float64 | No | None | Named parameter. Vertical translation distance. Default unit: vp. |
func scale(?Float64, ?Float64)
public func scale(sx!: ?Float64 = None, sy!: ?Float64 = None): This
Description: Performs right-multiplication scaling operation on the current matrix.
System Capability: SystemCapability.ArkUI.ArkUI.Full
Since: 22
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| sx | ?Float64 | No | None | Named parameter. Horizontal scaling factor. |
| sy | ?Float64 | No | None | Named parameter. Vertical scaling factor. |
Example Code
package ohos_app_cangjie_entry
import kit.ArkUI.*
import ohos.arkui.state_macro_manage.*
@Entry
@Component
class EntryView {
private let settings: RenderingContextSettings = RenderingContextSettings(antialias: true)
private let context1: CanvasRenderingContext2D = CanvasRenderingContext2D(this.settings)
private let matrix: Matrix2D = Matrix2D()
func build() {
Row {
Canvas(this.context1)
.width(240.vp)
.height(180.vp)
.backgroundColor(0xffff00)
.onReady(
{
=>
this.context1.fillRect(100.0, 20.0, 50.0, 50.0)
this.matrix.scaleX = 1.0
this.matrix.scaleY = 1.0
this.matrix.rotateX = -0.5
this.matrix.rotateY = 0.5
this.matrix.translateX = 10.0
this.matrix.translateY = 10.0
this.context1.setTransform(this.matrix)
this.context1.fillRect(100.0, 20.0, 50.0, 50.0)
}
)
}.height(100.percent).width(100.percent)
}
}
