看了好多Python写的画树,想看看在Excel里画个树行不行,于是乎花了点时间用VBA写了个,效果还不错,截个图给大家看看。
绿色固定配色版效果:
随机颜色版效果:
附上主代码
Sub test()
'画树主程序
'作者:孙建烽 42414074@qq.com
'需要定制软件可以加V :yltxz001
'http://www.yltsoft.cn
Pi = 3.1415926
ClearSht_Shape Sheet3.Name
x = 600
y = 600
n = 11 '画树节点数
Sht_Line1 Sheet3.Name, x, y - 10, x, y + 50, 15, 0, 100, 0
drawTree x, y, n, Pi
End SubSub drawTree(ByVal x As Single, ByVal y As Single, ByVal n As Integer, ByVal a As Double)Dim w As SingleDim g1 As IntegerPi = 3.1415926If n > 1 Then'分叉随机角度a1 = a + (Rnd() * Pi / 13 + Pi / 18)a2 = a - (Rnd() * Pi / 13 + Pi / 18)'分枝随机长度d1 = Rnd() * 50 + n * 4d2 = Rnd() * 50 + n * 4'分枝端点坐标x1 = x + Sin(a1) * d1y1 = y + Cos(a1) * d1x2 = x + Sin(a2) * d2y2 = y + Cos(a2) * d2w = ng1 = nSht_Line1 Sheet3.Name, x, y, x1, y1, w, 0, 200 - g1 * 10, 0Sht_Line1 Sheet3.Name, x, y, x2, y2, w, 0, 200 - g1 * 10, 0n = n - 1drawTree x1, y1, n, a1drawTree x2, y2, n, a2'画花If n = 1 Thendrawf Sheet3.Name, x1, y1drawf Sheet3.Name, x2, y2End IfEnd IfEnd Sub
我的电脑配置老古董,画11个节点就有点卡了,不知道你们能画多少个节点。
需要源程序的可以到下面下载。
https://download.csdn.net/download/gc0322/22173412?spm=1001.2014.3001.5503