HarmonyOS 鸿蒙Next canvas.drawCircle方法画出的圆形位置偏移
HarmonyOS 鸿蒙Next canvas.drawCircle方法画出的圆形位置偏移
Polyline({ width: 260, height: 260 })
.points([[187.2, 177.6], [76.5, 177.6], [198, 152.1], [66.6, 160.5]])
.fillOpacity(0)
.stroke(Color.White)
.strokeWidth(3)
Canvas(this.context).width(260).height(260).onReady(() => {
this.context.canvas.drawCircle(187.2, 177.6, 20)
this.context.canvas.drawCircle(76.5, 177.6, 20)
this.context.canvas.drawCircle(198, 152.1, 20)
this.context.canvas.drawCircle(66.6, 160.5, 20)
this.context.invalidate()
})
接下图,红色字是Polyline是正确的,如何根据xy坐标在Polyline四个位置画四个圆形?
更多关于HarmonyOS 鸿蒙Next canvas.drawCircle方法画出的圆形位置偏移的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
需要统一以下单位,demo如下:
[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
private context: DrawingRenderingContext = new DrawingRenderingContext()
build() {
Stack() {
Polyline({ width: '260px', height: '260px'})
.points([['187.2px', '177.6px'], ['76.5px', '177.6px'], ['198px', '152.1px'], ['66.6px', '160.5px']])
.fillOpacity(0)
.stroke(Color.Black)
.strokeWidth(3)
Canvas(this.context)
.width('260px')
.height('260px')
.onReady(() => {
this.context.canvas.drawCircle(187.2, 177.6, 20)
this.context.canvas.drawCircle(76.5, 177.6, 20)
this.context.canvas.drawCircle(198, 152.1, 20)
this.context.canvas.drawCircle(66.6, 160.5, 20)
this.context.invalidate()
})
}
}
}
更多关于HarmonyOS 鸿蒙Next canvas.drawCircle方法画出的圆形位置偏移的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙系统中,canvas.drawCircle
方法用于在画布上绘制圆形。若圆形位置出现偏移,这通常与坐标系统、绘制参数或画布变换有关。
-
检查圆心坐标:确保传递给
drawCircle
方法的圆心坐标(float cx
,float cy
)正确无误。这些坐标表示圆形中心的x和y位置,任何偏差都会直接影响圆形的绘制位置。 -
检查半径长度:
float radius
参数定义了圆形的半径长度。半径值不会影响位置偏移,但会影响圆形的大小和显示效果。 -
考虑画布变换:如果在绘制圆形前对画布进行了平移、旋转或缩放等变换(如使用
canvas.translate
,canvas.rotate
,canvas.scale
等方法),这会影响后续绘制操作的位置和形状。确保这些变换在逻辑上是预期的,或者调整它们以修正偏移。 -
检查画布边界:确保绘制圆形的区域在画布的有效范围内。如果圆心坐标和半径导致圆形部分或全部超出画布边界,则可能无法正确显示或显示不完整。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html