太极图你就按照自己设计的画圆画弧就好了。你能画出来大圆,小圆只是圆心和半径不同而已。
建议你能做一个通用的画圆的子程序,其实就只需要给几个参数,分别调用几次这个画圆的函数就好了。还有,精度不需要那么高,高了除了运算慢,没有任何作用。表现都一样。
- Sub 太极图()
- DrawArc 300, 300, 100, 0, 360, 0.1
- DrawArc 350, 300, 50, 180, 360, 0.1
- DrawArc 250, 300, 50, 0, 180, 0.1
- DrawArc 250, 300, 10, 0, 360, 0.2
- DrawArc 350, 300, 10, 0, 360, 0.2
- End Sub
- Sub DrawArc(x0 As Single, y0 As Single, r As Single, startAngle As Single, endAngle As Single, precision As Double)
- Const pi = 3.1415926
- Dim sAng As Single, eAng As Single
- sAng = pi * startAngle / 180
- eAng = pi * endAngle / 180
- Dim xx As Double, yy As Double, x As Double, y As Double
- xx = r * Cos(sAng) + x0
- yy = r * Sin(sAng) + y0
- sAng = sAng
- For i = sAng To eAng Step precision
- x = x0 + r * Cos(i)
- y = y0 + r * Sin(i)
- With SlideShowWindows(1).View
- .PointerColor.RGB = vbRed
- .DrawLine xx, yy, x, y
- End With
- xx = x
- yy = y
- Next i
- End Sub
复制代码
另外,曼德布罗集是一个分形,需要递归迭代,绘制这个东西感觉没啥意义,我之前打算绘制一些分形的,但是后面觉得分形迭代耗费资源挺大的,实用性不强。所以就没做了。
|