由邻接矩阵画有向图、无向图

由邻接矩阵画有向图的逻辑如下:

设邻接矩阵的行(列)数为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、θ可在有效范围内取任意值,以画出最适合的图形

画无向图的逻辑同上,只是M条有向线段变成(M/2)条无向线段

  • 7
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是城墟垣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值