HarmonyOS OffscreenCanvasRenderingContext2D scale 不支持中心点问题
在其他系统中Canvas 支持Matrix变换操作 其中 Matrix提供 postScale(scale, scale, midPoint.x, midPoint.y) 缩放支持指定中心点。
目前在HarmonyOS OffscreenCanvasRenderingContext2D transform scale不支持指定中心点,使用如下函数单次缩放可以实现一样的效果
private scaleWithPoint(
ctx: OffscreenCanvasRenderingContext2D,
sx: number,
sy: number,
cx: number = 0,
cy: number = 0
) {
if (cx == 0 && cy == 0) {
ctx.scale(sx, sy)
return
}
let offsetX = this.canvasWidth / 2 - cx
let offsetY = this.canvasHeight / 2 - cy
ctx.translate(-offsetX, -offsetY)
ctx.scale(sx, sy)
ctx.translate(offsetX, offsetY)
}
现在存在问题:
-
如果第二次希望在上次缩放基础再次缩放,则会出现闪动。希望能协助给出和Matrix 多次postScale等价效果代码实现。目前实现缩放逻辑在 demo的 ZoomMoveImpl 中
-
帮忙确认matrix4.identity() 多次指定中心点的缩放 是否和 Matrix postScale等价
-
帮忙确认如果是使用Canvas控件外部的transform方法,这个方法支持matrix4 矩阵变换,如何将绘制内容同步到 OffscreenCanvasRenderingContext2D 中
HarmonyOS
赞
收藏 0
回答 1
待解决
相关问题
HarmonyOS 关于使用OffscreenCanvasRenderingContext2D绘制问题
80浏览 • 1回复 待解决
HarmonyOS 如何使用Resource对象给OffscreenCanvasRenderingContext2D设置颜色
374浏览 • 1回复 待解决
HarmonyOS OffscreenCanvasRenderingContext2D的这个绘制方法不会自动换行吗?
81浏览 • 1回复 待解决
如何可以获取组件的中心点坐标
736浏览 • 1回复 待解决
HarmonyOS 如何动态调整缩放的中心点,实现精确缩放图片
36浏览 • 1回复 待解决
HarmonyOS 地图组件怎么获取中心点的经纬度
28浏览 • 1回复 待解决
HarmonyOS 调用地图的map.newLatLng(newLatLng,15)不能切换到中心点
51浏览 • 1回复 待解决
HarmonyOS 不支持通过索引访问字段问题
47浏览 • 1回复 待解决
HarmonyOS关于mqtt不支持ssl协议问题
543浏览 • 2回复 待解决
HarmonyOS 初始化地图后想修改地图的中心点坐标, 怎么修改?
36浏览 • 1回复 待解决
web组件不支持localstorage
837浏览 • 1回复 待解决
HarmonyOS 关于ArkTS不支持ts字面量类型问题
84浏览 • 0回复 待解决
HarmonyOS CanvasRenderingContext2D使用问题
36浏览 • 1回复 待解决
是否支持jit和aot(jit不支持,aot支持),如果不支持jit怎么动态下发
2271浏览 • 1回复 待解决
HarmonyOS Span不支持n换行
36浏览 • 1回复 待解决
HarmonyOS image不支持mask吗
52浏览 • 1回复 待解决
存储问题,使用mmkv,这种目前不支持,怎么处理?
852浏览 • 1回复 待解决
HarmonyOS RN使用datetimePicker显示不支持
110浏览 • 1回复 待解决
http类不支持cancel方法
207浏览 • 1回复 待解决
HarmonyOS Matrix2D的用法问题
27浏览 • 1回复 待解决
HarmonyOS Web不支持http请求,只支持https
94浏览 • 1回复 待解决
HarmonyOS Object不支持 ... 展开符吗?
288浏览 • 1回复 待解决
HarmonyOS ets不支持匿名类吗?
243浏览 • 2回复 待解决
参考示例代码:
xxx.ets