找回密码
 立即注册
搜索

怎么用VBA在ppt中画圆,就是类似插入圆,可填充的那种?

1
回复
715
查看
[复制链接]

4

主题

11

帖子

37

幻币

江湖少侠

Rank: 2

积分
73
QQ
2017-12-13 11:08:09 显示全部楼层 |阅读模式
想在office2007ppt中做一个动态放大镜的程序,没想到第一个拦路虎就是做圆,因此想请教论坛中的大神们,而且ppt录制的宏显示不了绘制圆操作
PPT学习论坛
回复

使用道具 举报

7

主题

55

帖子

547

幻币

一派掌门

Rank: 6Rank: 6

积分
1008
QQ
2017-12-26 09:30:52 显示全部楼层
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。
我们先编半个程序,边看边说:
  1. Private Sub CommandButton2_Click()’命令按钮
  2. With SlideShowWindows(Index:=1).View’在放映模式下,普通模式不能画
  3. .PointerColor.RGB = vbBlue’画笔颜色蓝色,没有这句,默认是红色
  4. r = 30’半径是30个单位
  5. π = 3.1415926’圆周率
  6. π圆周率,也可以说是弧度,π是180度,2*π是360度,π/2是90度,3*π/2是270度,角度变弧度,n*π/180。接着来
  7. For θ = 0 To π / 2 Step 0.0001 '从0度到90度
  8. x = r * Cos(θ)’圆x坐标
  9. y = r * Sin(θ)’圆y坐标
  10. Step 0.0001就是画线的密度,有时叫步进,密度越大,点与点连接紧密,线条越粗;密度越小,点与点连接稀,线条越细。密度越大,画的线就越慢,像动画,机器轰隆隆响。
  11. 在这里补充下,0度到90度是从水平线经过第四象限到垂直线的,是顺时针为正的,从第四象限到第三象限、第二象限、最后是第一象限,书本中都是逆时针为正的。
  12. SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '
  13. 这句就是画线了,为了让图形在屏幕的中心,所以x加了360,y加了270,不然就跑到左上角,部分图形就看不到了。X2、y2为什么加了0.01呢,就是一点一点的逐点移动,既不能移动太大,点太稀,如果前后的x不一致,如前面x为360,后面的x为361,或前面y为270,后面y为272,就是立体,也不能移动太小,机器响的太厉害!这句代码画的是东南方向凸弧。
  14. 中心点移动到(390,300),开始位置从180度到270度,就是反方向弧(西北方向凸弧)。
  15. 下面是完整代码:
  16. Private Sub CommandButton1_Click() '正方形对角线凸凹圆弧
  17. With SlideShowWindows(Index:=1).View
  18. .PointerColor.RGB = vbBlue
  19. SlideShowWindows(1).View.DrawLine 360, 270, 360, 300 '竖线
  20. SlideShowWindows(1).View.DrawLine 360, 300, 390, 300 '横线
  21. SlideShowWindows(1).View.DrawLine 390, 300, 390, 270 '竖线
  22. SlideShowWindows(1).View.DrawLine 390, 270, 360, 270 '横线
  23. r = 30
  24. π = 3.1415926
  25. For θ = 0 To π / 2 Step 0.0001 '
  26. x = r * Cos(θ)
  27. y = r * Sin(θ)
  28. SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '东南方向凸弧
  29. Next
  30. For θ = π To π * 3 / 2 Step 0.0001 '
  31. x = r * Cos(θ)
  32. y = r * Sin(θ)
  33. SlideShowWindows(1).View.DrawLine 390 + x, 300 + y, 390 + x + 0.01, 300 + y + 0.01 '西北方向凸弧
  34. Next
  35. End With
  36. End Sub
复制代码


画圆的,把开始角度、结束角度改下。完整代码:
  1. Private Sub CommandButton2_Click() '
  2. With SlideShowWindows(Index:=1).View
  3. .PointerColor.RGB = vbBlue
  4. r = 30
  5. π = 3.1415926
  6. For θ = 0 To 2*π Step 0.0001 '
  7. x = r * Cos(θ)
  8. y = r * Sin(θ)
  9. SlideShowWindows(1).View.DrawLine 360 + x, 270 + y, 360 + x + 0.01, 270 + y + 0.01 '
  10. Next
  11. End With
  12. End Sub
复制代码


写教程类的累人,这两天编程序真的很累,每天工作十五、六个小时。所幸我在单位搞材料,才有大量时间,明年没时间来了,要挣钱养家。
下篇文章,阿基米德螺旋线、渐开线、斐波那契数列螺旋线,三个程序编好了,没来得及发表。

VBA PPT使用Drawline画圆半圆任意圆弧2010版.pptm (50.12 KB, 下载次数: 208)
PPT学习论坛
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册