在Circle上使用UIBeizerPath

iko子

我想制作一个可以按百分比切割的圆,例如0.25是该圆的1/4。

到目前为止,这是我的代码:

let circlePath = UIBezierPath(arcCenter: CGPoint(x: 100,y: 300), radius: CGFloat(20), startAngle: CGFloat(M_PI + M_PI_2), endAngle:CGFloat(90 * M_PI / 180, clockwise: true)

        let shapeLayer = CAShapeLayer()
        shapeLayer.path = circlePath.CGPath

        //change the fill color
        shapeLayer.fillColor = UIColor.clearColor().CGColor
        //you can change the stroke color
        shapeLayer.strokeColor = UIColor.redColor().CGColor
        //you can change the line width
        shapeLayer.lineWidth = 3.0

        view.layer.addSublayer(shapeLayer)

我在startAngle中写道,CGFloat(M_PI + M_PI_2)因为圆的起点不是从0开始,而是如下图所示:

在此处输入图片说明

在这endAngle行中,我写CGFloat(90 * M_PI / 180)是因为从度到弧度的公式是:度* pi / 180

但!在视图中,我得到的是圆的一半而不是四分之一:

在此处输入图片说明

我的endAngle公式是否错误?

iko子

因为在iOS中,圆的顶部始于270度,所以startAngle为:

startAngle: CGFloat(M_PI + M_PI_2)

endAngle是:

endAngle:CGFloat((360 * 0.25 - 90)

您可以将其更改为0到1之间的任何数字,而不是0.25(例如:如果您希望圆的一半充满),请将其更改为0.5)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用Google Services Gradle插件在Circle CI上测试android应用

来自分类Dev

在fa-circle上添加边框

来自分类Dev

Circle CI上的AWS CLI工具:configure:unknown命令

来自分类Dev

在Symfony3.4上未调用circle_reference_handler

来自分类Dev

在传单L.circle()函数创建的圆上添加文本

来自分类Dev

如何在Android中的Google Maps上显示InfoWindow for Circle

来自分类Dev

测试通过Xcode,但在Circle CI上失败

来自分类Dev

如何使用测试昵称登录Amazon Game Circle?

来自分类Dev

在Boostrap中使用img-circle保持完美的圆

来自分类Dev

使用输入type =“ range”更改Circle google map的半径

来自分类Dev

Python Turtle:使用circle()方法绘制同心圆

来自分类Dev

如何使用鼠标在fabricjs中自由绘制Circle?

来自分类Dev

使用HTML和CSS将图像放置到Circle中

来自分类Dev

使用SVG为Circle Border制作动画的特定方法?

来自分类Dev

使用matplotlib中的plt.Circle设置AxisArtist的轴限制

来自分类Dev

使用circle.js在div中添加多个圈子

来自分类Dev

如何创建Circle ProgressDrawable以在壁画中使用?

来自分类Dev

使用HTML和CSS将图像放置到Circle中

来自分类Dev

如何在SVG Circle元素中使用data- *属性

来自分类Dev

如何在 WPF 中使用 Circle 绘制相机的视野?

来自分类Dev

ProgressBar Circle在android L(API 21)上未显示任何进度

来自分类Dev

d3js-折线图`circle`在线条上的位置设置不正确

来自分类Dev

在iso网格上用于平铺地图画笔的算法比Midpoint Circle更好

来自分类Dev

d3js-折线图`circle`在线条上的位置设置不正确

来自分类Dev

Circle Pack布局D3-删除新数据上的添加节点

来自分类Dev

在Android上使用ARToolkit

来自分类Dev

在Android上使用Docker

来自分类常见问题

在UIImageView上使用淡色

来自分类Dev

在`newtype a`上使用`a`函数

Related 相关文章

  1. 1

    如何使用Google Services Gradle插件在Circle CI上测试android应用

  2. 2

    在fa-circle上添加边框

  3. 3

    Circle CI上的AWS CLI工具:configure:unknown命令

  4. 4

    在Symfony3.4上未调用circle_reference_handler

  5. 5

    在传单L.circle()函数创建的圆上添加文本

  6. 6

    如何在Android中的Google Maps上显示InfoWindow for Circle

  7. 7

    测试通过Xcode,但在Circle CI上失败

  8. 8

    如何使用测试昵称登录Amazon Game Circle?

  9. 9

    在Boostrap中使用img-circle保持完美的圆

  10. 10

    使用输入type =“ range”更改Circle google map的半径

  11. 11

    Python Turtle:使用circle()方法绘制同心圆

  12. 12

    如何使用鼠标在fabricjs中自由绘制Circle?

  13. 13

    使用HTML和CSS将图像放置到Circle中

  14. 14

    使用SVG为Circle Border制作动画的特定方法?

  15. 15

    使用matplotlib中的plt.Circle设置AxisArtist的轴限制

  16. 16

    使用circle.js在div中添加多个圈子

  17. 17

    如何创建Circle ProgressDrawable以在壁画中使用?

  18. 18

    使用HTML和CSS将图像放置到Circle中

  19. 19

    如何在SVG Circle元素中使用data- *属性

  20. 20

    如何在 WPF 中使用 Circle 绘制相机的视野?

  21. 21

    ProgressBar Circle在android L(API 21)上未显示任何进度

  22. 22

    d3js-折线图`circle`在线条上的位置设置不正确

  23. 23

    在iso网格上用于平铺地图画笔的算法比Midpoint Circle更好

  24. 24

    d3js-折线图`circle`在线条上的位置设置不正确

  25. 25

    Circle Pack布局D3-删除新数据上的添加节点

  26. 26

    在Android上使用ARToolkit

  27. 27

    在Android上使用Docker

  28. 28

    在UIImageView上使用淡色

  29. 29

    在`newtype a`上使用`a`函数

热门标签

归档