我们先重温初中生都知道的几个概念
正多边行每个圆心角都是相等的,也就是360/n(n是指多少边行)
二个相邻的点构成的线是相等的
见图:
然后通过Path,把相邻的二个点连接起来就形成了一个Path,绘制到画布(canvas)就ok,
代码如下:
package com.multilateral.view; import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.support.annotation.Nullable; import android.util.AttributeSet; import android.view.View; import java.util.HashMap; import java.util.Map; /** * Created by zhouguizhi on 2017/9/25. */ public class CustomMultilateralView extends View { private Paint paint; private int number = 8;//8边形 private float STROKEWIDTH = 4; private float STROKEWIDTH_LINE = 2; private boolean isDrawCircle = true;//是否绘制外圆 private boolean isJoinLine = true; private Map<Float,Float> points