找回密码
 加入
搜索
查看: 5345|回复: 10

[效率算法] 如何实现鼠标动态画漩涡[已解决]

  [复制链接]
发表于 2010-5-10 21:48:24 | 显示全部楼层 |阅读模式
本帖最后由 tianlong 于 2010-5-11 00:38 编辑

看了个帖子是动态画圆圈的代码如下
HotKeySet("{Esc}", "_Exit")

_Circle(@DesktopWidth / 2, @DesktopHeight / 2, 200)



#cs

        $iCenterX = 圆心横坐标

        $iCenterY = 圆心纵坐标

        $iRadius = 圆半径

        $iDelay = 鼠标移动延时,单位为毫秒,缺省为 50

        $iSpeed = 鼠标移动速度,范围为 1(最快)-100(最慢),缺省为 0

        $pi = 圆周率 pi,缺省为 3.14159265358979

#ce



Func _Circle($iCenterX, $iCenterY, $iRadius, $iDelay = 50, $iSpeed = 0, $pi = 3.14159265358979)

        Local $iMouseX, $iMouseY

        For $i = 1 To 360 Step 1

                $iMouseX = $iCenterX + $iRadius * Cos($i * $pi / 180)

                $iMouseY = $iCenterY + $iRadius * Sin($i * $pi / 180)

                Sleep($iDelay)

                MouseMove($iMouseX, $iMouseY, $iSpeed)

        Next

EndFunc   ;==>_Circle



Func _Exit()

        Exit

EndFunc   ;==>_Exit

问题来了,这个代码解决了鼠标模拟画圆的问题,可是怎么能让它画漩涡呢?就是一圈比一圈大的那种。恳求高手指导!!!

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-5-10 21:51:06 | 显示全部楼层
自己试着调了下角度不行啊!!!!!!!!!!!!!
发表于 2010-5-10 21:57:31 | 显示全部楼层
C.L 看到了应该会有兴趣~ 等等吧
发表于 2010-5-10 22:44:10 | 显示全部楼层
本帖最后由 pusofalse 于 2010-5-10 22:59 编辑
Dim $flPI = 3.14159
Dim $iTime = 360 * 10, $iAngleStep = 5, $iR = 200, $iX, $iY
Dim $iCenterX = @DesktopWidth / 2, $iCenterY = @DesktopHeight / 2

For $i = 0 To $iTime Step $iAngleStep
        $iX = Cos(($i + 90) / 360 * 2 * $flPI) * $iR
        $iY = Sin(($i + 90) / 360 * 2 * $flPI) * $iR

        $iR = Sin((90 - $iAngleStep) / 360 * 2 * $flPI) * $iR / Sin(90 / 360 * 2 * $flPI)
        MouseMove($iX + $iCenterX, $iY + $iCenterY, 1)
Next

评分

参与人数 2金钱 +39 收起 理由
lynfr8 + 9 厉害、佩服
水木子 + 30 学习啦!相当厉害。

查看全部评分

发表于 2010-5-10 22:50:32 | 显示全部楼层
pusofalse 发表于 2010-5-10 22:44



    精彩极了~~
 楼主| 发表于 2010-5-11 00:33:33 | 显示全部楼层
问题解决了,谢谢拉!!!新问题又来了,发新帖了!
 楼主| 发表于 2010-5-11 00:37:29 | 显示全部楼层

RE: 如何实现鼠标动态画漩涡[已解决]

解决大问题了
发表于 2010-5-11 07:04:34 | 显示全部楼层
代码学习了...
发表于 2010-5-11 10:47:10 | 显示全部楼层
回复 3# afan
呵呵,我是有点兴趣,不过来晚了,P版已经写出了很精彩的代码
我也写了段代码,当做个练习,可调圈数,鼠标可调移动快慢
;圈数总数的一半会向内旋,一半向外旋。
HotKeySet("{Esc}", "_Exit")

_Circle(@DesktopWidth / 2, @DesktopHeight / 2, 200,15,8);$iRound自定义圈数,$iStep自定义移动快慢

Func _Circle($iCenterX, $iCenterY, $iRadius, $iRound = 20, $iStep = 5, $pi = 3.14159265358979)
        Local $iMouseX, $iMouseY,$iend = $iRound *360,$iR = $iRadius
        For $i = 1 To $iend Step $iStep
                $iMouseX = $iCenterX + $iR * Cos($i * $pi / 180)
                $iMouseY = $iCenterY + $iR * Sin($i * $pi / 180)
                $iR -= ($iRadius/($iRound/2)/(360/$iStep))
                MouseMove($iMouseX, $iMouseY, 1)
        Next
EndFunc   ;==>_Circle

Func _Exit()
        Exit
EndFunc   ;==>_Exit

评分

参与人数 2威望 +2 贡献 +5 收起 理由
lynfr8 + 5 厉害、佩服
afan + 2 呵呵,不错不错

查看全部评分

发表于 2010-7-20 17:53:56 | 显示全部楼层
谢谢楼主分享
发表于 2013-8-2 17:57:56 | 显示全部楼层
玩的挺溜的~~~学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-10 14:08 , Processed in 0.078253 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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