【问题标题】:Android: Using drawArc() with different arc sizes with all the same centerAndroid:使用具有不同圆弧大小且中心相同的drawArc()
【发布时间】:2012-12-24 04:05:15
【问题描述】:

我正在尝试以与传统方式略有不同的方式绘制饼图。无论如何,馅饼都有相同的块,但是每个块的半径是不同的。所以所有的圆弧仍然以一个点为中心,但半径不同。

这是它的简化代码。

rect1 = new RectF(0,0,8,8)
rect2 = new RectF(0,0,6,6)
rect3 = new RectF(0,0,4,4)
rect4 = new RectF(0,0,2,2)

canvas.drawArc(rect1,0,90,true, paint)
canvas.drawArc(rect2,90,90,true, paint)
canvas.drawArc(rect3,180,90,true, paint)
canvas.drawArc(rect4,270,90,true, paint)

这将创建所有正确的弧,但所有弧的点不在同一个位置居中。我知道这是因为 RectF 类的工作方式。

所以我的问题是,我可以在画布的中心排列这些不同的弧吗?在某处我可以使用弧偏移来执行此操作吗?

我尝试用油漆this solution,但没有成功。任何建议都会有所帮助!

【问题讨论】:

    标签: android


    【解决方案1】:

    它并不是真正基于“RectF 类的工作原理”,而是基于您放置这些矩形的方式。不要将所有这些矩形的左上角对齐(0, 0),而是对齐中心。一点基本的数学知识会让你明白这一点。假设中心点(centerX, centerY) 和半径radius,左侧为centerX - radius,顶部为centerY - radius,右侧为centerX + radius,底部为centerY + radius。对每个具有相同中心点和不同半径的矩形执行此操作,不出所料,您最终会得到具有相同中心的弧。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-31
      • 1970-01-01
      • 1970-01-01
      • 2022-08-24
      • 2020-12-12
      • 1970-01-01
      • 2022-08-17
      相关资源
      最近更新 更多