|
Drawline函数就是在ppt放映模式下画点,逐点连接任意两点就是线。看怎么连接,逐点直对直的连接是线段,逐点有一定的弧度连接就是圆或圆弧。
在放映模式下,ppt窗口屏幕尺寸是720*540,使用直角坐标系,横向的是x轴,纵向的是y轴,但是它的原点在屏幕左上角,从左向右x数字越来越大,从上到下y数字越来越大,屏幕中心点坐标是(360,270)。
DrawLine使用格式:DrawLine x1,y1,x2,y2。(必须半角输入)
圆的方程:
x = r * Cos(θ),y = r * Sin(θ)。
一个圆有圆心和半径,r是半径,这个θ就是圆的角度,从0到360,圆心后面再说。因为是在放映模式下画圆,所以加上With SlideShowWindows(Index:=1).View。
我们先编半个程序,边看边说:
- Private Sub CommandButton2_Click()’命令按钮
- With SlideShowWindows(Index:=1).View’在放映模式下,普通模式不能画
- .PointerColor.RGB = vbBlue’画笔颜色蓝色,没有这句,默认是红色
- r = 30’半径是30个单位
- π = 3.1415926’圆周率
- π圆周率,也可以说是弧度,π是180度,2*π是360度,π/2是90度,3*π/2是270度,角度变弧度,n*π/180。接着来
- For θ = 0 To π / 2 Step 0.0001 '从0度到90度
- x = r * Cos(θ)’圆x坐标
- y = r * Sin(θ)’圆y坐标
- Step 0.0001就是画线的密度,有时叫步进,密度越大,点与点连接紧密,线条越粗;密度越小,点与点连接稀,线条越细。密度越大,画的线就越慢,像动画,机器轰隆隆响。
- 在这里补充下,0度到90度是从水平线经过第四象限到垂直线的,是顺时针为正的,从第四象限到第三象限、第二象限、最后是第一象限,书本中都是逆时针为正的。
- SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '
- 这句就是画线了,为了让图形在屏幕的中心,所以x加了360,y加了270,不然就跑到左上角,部分图形就看不到了。X2、y2为什么加了0.01呢,就是一点一点的逐点移动,既不能移动太大,点太稀,如果前后的x不一致,如前面x为360,后面的x为361,或前面y为270,后面y为272,就是立体,也不能移动太小,机器响的太厉害!这句代码画的是东南方向凸弧。
- 中心点移动到(390,300),开始位置从180度到270度,就是反方向弧(西北方向凸弧)。
- 下面是完整代码:
- Private Sub CommandButton1_Click() '正方形对角线凸凹圆弧
- With SlideShowWindows(Index:=1).View
- .PointerColor.RGB = vbBlue
- SlideShowWindows(1).View.DrawLine 360, 270, 360, 300 '竖线
- SlideShowWindows(1).View.DrawLine 360, 300, 390, 300 '横线
- SlideShowWindows(1).View.DrawLine 390, 300, 390, 270 '竖线
- SlideShowWindows(1).View.DrawLine 390, 270, 360, 270 '横线
- r = 30
- π = 3.1415926
- For θ = 0 To π / 2 Step 0.0001 '
- x = r * Cos(θ)
- y = r * Sin(θ)
- SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '东南方向凸弧
- Next
- For θ = π To π * 3 / 2 Step 0.0001 '
- x = r * Cos(θ)
- y = r * Sin(θ)
- SlideShowWindows(1).View.DrawLine 390 + x, 300 + y, 390 + x + 0.01, 300 + y + 0.01 '西北方向凸弧
- Next
- End With
- End Sub
复制代码
画圆的,把开始角度、结束角度改下。完整代码:
- Private Sub CommandButton2_Click() '
- With SlideShowWindows(Index:=1).View
- .PointerColor.RGB = vbBlue
- r = 30
- π = 3.1415926
- For θ = 0 To 2*π Step 0.0001 '
- x = r * Cos(θ)
- y = r * Sin(θ)
- SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '
- Next
- End With
- End Sub
复制代码
写教程类的累人,这两天编程序真的很累,每天工作十五、六个小时。所幸我在单位搞材料,才有大量时间,明年没时间来了,要挣钱养家。
下篇文章,阿基米德螺旋线、渐开线、斐波那契数列螺旋线,三个程序编好了,没来得及发表。
VBA PPT使用Drawline画圆半圆任意圆弧2010版.pptm
(50.12 KB, 下载次数: 208)
|
|