由邻接矩阵画有向图的逻辑如下:
设邻接矩阵的行(列)数为N,矩阵中非零元素的个数为M,画布宽为W、高为H
1、有向图顶点数为N、有向边数为M,问题转化为:画正N边形的所有顶点、以及顶点之间的M条有向线段
2、为方便作图,所有顶点位置相对于画布中心点(W/2, H/2)距离保持一致,该距离可设为一常量R(R>0)
3、两相邻顶点与画布中心点连线之间的夹角互为(2Π/N)
4、设顶点下标为i(0≤i<N),顶点坐标可表示为(W/2*(1+cos(2Π/N*i+θ)), H/2*(1+sin(2Π/N*i+θ)))(θ为常量,0≤θ<2Π)
5、在画布上:根据顶点坐标画出N个像素点,再根据邻接矩阵非零元素画出这N个点之间的M条有向线段
注:常量R、θ可在有效范围内取任意值,以画出最适合的图形