绘制弧度方法详解
来源:互联网 发布:大数据access和mysql 编辑:程序博客网 时间:2024/06/05 05:05
先看下源码:
讲解下几个参数的意思:
RectF :这个参数定义了一个矩形,弧度就是在这个矩形里绘制的,弧度的半径就是在这个矩形里能够绘制的最大圆形的半径(注意:有可能是椭圆也可能是正圆,这取决于矩形本身)如下图的四个紫色的点:
其实你所要绘制的弧形也是根据这个最大圆形绘制的。
startAngle:这个参数就如字面意思,开始的角度。在图中我也标出了几个角度,顺序就是这个顺序!
sweepAngle :这个是你要绘制的角度,比如图中我就是绘制了一个90度的弧形!
useCenter 这个参数很重要,是否是在中心点的位置。如果为true则绘制的时候回从圆心到开始角度所在的位置绘制一条线条,如下图:
顺便贴下相关代码:
Paint paint = new Paint();
RectF rectF = new RectF(-200, -200, 200, 200);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setColor(Color.YELLOW);
canvas.drawRect(rectF, paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(4);
paint.setStyle(Paint.Style.STROKE);
canvas.drawArc(rectF, 0, 90, true, paint);
注意这句: canvas.drawArc(rectF, 0, 90, true, paint);
首先我设置useCenter为true,然后从0度的位置顺时针绘制90度就是现在的样子了!
如果将useCenter设置为false就变成了这样:
然后我再将上面的代码改成现在这样:
Paint paint = new Paint();
RectF rectF = new RectF(-200, -200, 200, 200);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.RED);
paint.setColor(Color.YELLOW);
canvas.drawRect(rectF, paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(4);
paint.setStyle(Paint.Style.FILL);
canvas.drawArc(rectF, 90, 90, false, paint);
canvas.drawArc(rectF, 0, 90, true, paint);
运行之后的结果就是这样的了:
看到不一样了吧!如果绘制的是实心的话,绘制的区域就不一样了,因为出发点事不一样的!
- 绘制弧度方法详解
- drawArc绘制弧度
- 弧度
- 给button添加弧度的方法
- Button设置弧度背景的方法
- UIBezierPath绘制图形的常用方法详解
- 角度转弧度&根据弧度计算圆周上点的坐标的方法
- 基于TILED的2D游戏绘制方法详解
- C++ GDI+ DrawImage方法详解(绘制指定图像Image)
- Android Activity的UI绘制流程之setContentView方法详解
- C++ GDI+ DrawImage方法详解(绘制指定图像Image)
- 流程图基础绘制方法和流程图制作软件功能详解
- UIBezierPath和CAShapeLayer结合绘制任意弧度的圆形(包含旋转动画)
- 角度->弧度
- Circle弧度
- 弧度转换
- 盒子弧度
- 什么是弧度
- [LeetCode]412. Fizz Buzz
- 初级程序员 需求分析那点事(一)
- Android7.0新特性,及Android N适配
- Linux安装jdk
- 网络编程中的关键问题总结
- 绘制弧度方法详解
- mysql 用 @rownum := @rownum+1 实现 rownum 功能
- mysql + shell 随机字符的产生方法
- Codeforces 779B(暴力)
- LeetCode 23. Merge k Sorted Lists
- Java集合源码阅读笔记-LinkedList
- 91. Decode Ways
- AsyncTask异步任务
- ISLR第四章-logistic LDA QDA