自定义多边形网格图谱属性绘制详解
首先,先展示效果图。
本文接下来要讲的就是多边形的属性绘制。
首先分析要绘制这样的一个东西,它大概有哪些步骤。
1.画出n(n >= 3)边形,并分成5等分
2.绘制出多边形的角与多边形中心(默认是圆心)的连线
3.绘制多边形角上的文字
4.绘制覆盖在多边形上的一个不规则多边形,即所谓的技能熟练度
那接下来按照步骤来一步步完成该图形
- 绘制n(n >= 3)边形,并分成5等分
首先,我们可以想象一下把多边形放在一个圆里面,由于原点坐标默认是在view的左上角,为了绘制方便,把原点迁移到圆心。
canvas.translate(mOrigionX,mOrigionY);//把画布原点迁移到该位置
这里默认多边形的第一个角坐标是处于y轴负方向的。如下
剩下的角坐标,都可以根据函数公式一一算出。代码如下
canvas.save();
canvas.translate(mOrigionX,mOrigionY);//把画布原点迁移到该位置
for(int i = DEFAULT_FIVE_POLYGON; i > 0;i--){
Path path = new Path();
for (int j=0;j<mPolygonNum;j++){
int angle = 360/mPolygonNum*j;
if (j==0){
// path.moveTo(mRadius*cos(360/mPolygonNum*j)*i/DEFAULT_FIVE_POLYGON,
// mRadius*sin(