如何实现鼠标动态画漩涡[已解决]
本帖最后由 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
:face (34):问题来了,这个代码解决了鼠标模拟画圆的问题,可是怎么能让它画漩涡呢?就是一圈比一圈大的那种。恳求高手指导!!! 自己试着调了下角度不行啊!!!!!!!!!!!!! C.L 看到了应该会有兴趣~ 等等吧 本帖最后由 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
pusofalse 发表于 2010-5-10 22:44 http://www.autoitx.com/images/common/back.gif
精彩极了~~ 问题解决了,谢谢拉!!!新问题又来了,发新帖了!
RE: 如何实现鼠标动态画漩涡[已解决]
:face (20):解决大问题了 代码学习了... 回复 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
谢谢楼主分享 玩的挺溜的~~~学习了
页:
[1]