鱼C论坛

 找回密码
 立即注册
查看: 2774|回复: 1

转 按键5级考试题解

[复制链接]
发表于 2013-3-29 19:36:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 love52120 于 2013-3-30 15:43 编辑

解析五级认证的画圆、方的题目
//写一个脚本,要求:让鼠标在画图工具里使用铅笔工具,由脚本执行鼠标命令,实现一边画圆一边画方的操作效果。
//提示:合理结构,禁止使用多线程方式同步执行。
//下面首先运行画图工具
这里的要求“实现一边画圆一边画方的操作效果”应该是同时进行画方和画圆,但是有不能使用多线程,在一开始感到很纠结,过后的两天里有一天晚上喝醉酒了,半夜睡醒,无意中想到可以用画圆上的一点接着画方上的一点,这样就可以使得圆方看起来是同时画的,也符合不适用多线程的要求。由于官方是不赞许发答案的,所以下面我将这个程序的主要部分运用注释给大家讲解一下。
首先是运行画板工具,然后选择画笔,因为是比较通用的写法,这里就省略了。
//圆心坐标
r = 100
//圆半径
x0 = 350+ux
y0 = 300+uy
//矩形的左竖最下点
l = 2
k = 512
//决定像素距离的l和k的比值须多加调试才能使得画圆和画方基本同时完成.否则将使得画圆不能全部完成。
n = 0
u = 0
i = 0
o = 0
p = 0
//为了避免跳转的时候不能获取到n,u,i,o,p变量的值,先给其赋初始值。
//这里是左边画圆,右边画方。下面将利用标记跳转的方式使得画圆和画方同时进行。
//因为矩形(正方形)是分段画的,所以这里也将圆等分成4个部分来画。
Rem 画圆1
While n < 3.1415926 /2
    x = x2 + r * cos(n)
    y = y2 - r * sin(n)
    MoveTo x, y
    LeftClick 1
    n = n + l / r
    Goto 画方1
    //  标记必须在n,u,i,o,p变量的自加后,这样才能使得n,u,i,o,p变量自增。
Wend
Rem 画圆2
While n >= 3.1415926 /2 and n < 3.1415926
    x = x2 + r * cos(n)
    y = y2 - r * sin(n)
    MoveTo x, y
    LeftClick 1
    n = n + l / r
    Goto 画方2
  Wend
Rem 画圆3
While n >= 3.1415926 and n < 3.1415926*3 /2
    x = x2 + r * cos(n)
    y = y2 - r * sin(n)
    MoveTo x, y
    LeftClick 1
    n = n + l / r
    Goto 画方3

Wend
Rem 画圆4
While n >= 3.1415926*3 /2 and n<301415926*2
    x = x2 + r * cos(n)
    y = y2 - r * sin(n)
    MoveTo x, y
    LeftClick 1
    n = n + l / r
    Goto 画方4
   
Wend
//这里将矩形分割成四个部分的直线方程分段画
//下面是画方的左竖
Rem 画方1
While u<200
    x1 = x0
    y1 = y0 - u
    MoveTo x1, y1
    LeftClick 1
    u = u + k / 200
    Goto 画圆1
Wend
//下面是画方的上横
Rem 画方2
While  i<200
    x1 = x0+i
    y1 = y0-200
    MoveTo x1, y1
    LeftClick 1
    i = i + k / 200
    goto 画圆2
Wend
//下面是画右竖
Rem 画方3
While  o<200
    x1 = x0+200
    y1 = y0-200 + o
    MoveTo x1, y1
    LeftClick 1
    o = o + k / 200
    Goto 画圆3
Wend
//下面是画方的下横
Rem 画方4
While  p<200
    x1 = x0 + 200 - p
    y1 = y0
    MoveTo x1, y1
    LeftClick 1
    p = p + k / 200
    Goto 画圆4
Wend
//这里可以加一句关闭画板工具的语句
MsgBox "圆、方已经画完,脚本已经停止"

我开始是将画方分成四个部分画的,顺序是左竖、上横、右竖、下横,中间插入画圆的点,但是后来发现这个比较困难,我就把画圆也相应的均等分成四个四分之一部分,再配合使用标记跳转,在画圆和画方之间相互跳转。这里可以通过设定某些值使得画圆方的线条更加密集。花了大半夜清醒的时间终于完成了这道题目的解答,这里分享给大家做个参考,希望对不理解的朋友有所帮助。



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2013-3-31 09:06:08 | 显示全部楼层
沙发{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 19:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表