android - 如何绘制不同粗细的圆弧

标签 android android-layout

我需要在 android 中绘制不同厚度的圆弧,如下图所示,

Arc from from some startDegree to endDegree with varying thickness

有没有可能画一个圆弧然后剪下来?由于弧可以在任何度数之间(startDegree 到 endDegree),我无法通过路径实现这一点。

所以我的需求是这样的,

example code snippet

请帮助我实现上述目标。

最佳答案

我认为,您可以使用 Path 来做到这一点

你的圆弧有这样的边:

  • 水平直线
  • 上弧
  • 垂直直线
  • 降低弧度

因此,您需要进行一些数学运算来计算这些坐标和参数。

更新:
请看一下 this question 好像我在那里找到了这条曲线的确切公式。

更新 2:
关于如何在 Canvas 上绘制螺旋,我认为不是很糟糕的解决方案是像here那样做(那里使用了 javascript,但没关系——想法是一样的)。 唯一的事情:需要在笛卡尔坐标系中编写螺旋方程。尝试自己做。如果你失败了,那就问我。

更新 3: 检查上述问题的 UPD2 部分以找到笛卡尔坐标系参数化。 可能有错误,我没有自己查,但是思路应该很清楚。

希望对您有所帮助。

关于android - 如何绘制不同粗细的圆弧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26337772/

相关文章:

java - 将 Java 项目转换为 Android 项目

java - 如何在 Android 23(棉花糖)中没有 apache 库的情况下在 Base 64 中编码字符串?

java - 为什么我没有 InputManager.getInstance()?和注入(inject)输入事件()?

android - 获取 View 的当前背景id

java - 使用包装内容时获取宽度和高度

android - 修复圆形 ViewPager 的动画

java - 在另一个布局上访问 textview

android - ImageView 没有保持最大高度和宽度

android - 由 : java. lang.OutOfMemoryError 引起:位图大小超出 VM 预算

c# - 上传图片返回空文件