;注意事项:英文标点下的分号就是注释,如果想改变穿透的图形的时候就可以注释现在用的图形,将没有注释的图形打开 ; Note: Exit script with Esc:: OnExit("exit") ; Settings radius:=105 ; Starting radius of the hole. increment:=25 ; Amount to decrease/increase radius of circle when turning scroll wheel inverted:=false ; If false, the region is see-throughable. rate:=40 ; The period (ms) of the timer. 40 ms is 25 "fps" ; Make the region ;~ region:=makeCircle(radius) ;画圆 region:=heart4tidbit(radius) ;画心 ; Script settings SetWinDelay,-1 listlines, off ; Remove when debugging. F1::timer(toggle:=!toggle,region,inverted,rate),pause:=0 ; Toggle on/off #if toggle F2::timer(1,region,inverted:=!inverted,rate),pause:=0 ; When on, toggle inverted setting F3::timer((pause:=!pause)?-1:1) ; When on, toggle pause. return ;滚轮调整穿透图形大小的 WheelUp:: ; Increase the radius of the circle WheelDown:: ; Decrease -- "" -- InStr(A_ThisHotkey,"Up") ? radius+=increment : radius-=increment radius=1994 ? 1994 : n ; There is a maximum of 2000 points for WinSet,Region,... loop, % n+1 t:=2*pi*(A_Index-1)/n, pts.push({x:round(r*cos(t)),y:round(r*sin(t))}) return pts } ;花心 heart4tidbit(r:=100) { n:=r*4 n:= n>=997 ? 997 : n ; There is a maximum of 2000 points for WinSet,Region,... region:=[] oY:=-r//2 Loop, % n { x:=-2+4*(A_Index-1)/(n-1) y:=-sqrt(1-(abs(x)-1)**2) region.push({x:x*r, y:y*r+oY}) } Loop, % n { x:=2-4*(A_Index-1)/(n-1) y:=3*sqrt(1-sqrt(abs(x/2))) region.push({x:x*r, y:y*r+oY}) } return region } ; Author: Helgef ; Date: 2017-04-15