- 空间 阿基米德螺旋线
- //*********绘制阿基米德螺旋线*********
- //*阿基米德螺旋线的标准极坐标方程为
- //ρ=at+P0
- //式中:
- //a—阿基米德螺旋线系数,mm/°,表示每旋转1度时极径的增加(或减小)量;
- //t—极角,单位为度,表示阿基米德螺旋线转过的总度数;
- //p0—当t=0°时的极径,mm。
- 功能 逻辑型 阿基米德螺旋线扫描法()
- //***p0为初始极径
- int p0 = 1 // 这个的值是控制初始的内圈大小,值越大,内圈越大
- int mag = 2 //放大倍数,这里也可以根据情况做调整
- int a=1 //阿基米德螺旋线系数
- double pi = 3.1415926
- double r,t
- ////画线的起始点坐标(startx,starty)
- // 表示的是要从那一点开始为基准点,逐渐向外扫描
- int startx=500,starty=300
- int endx,endy
- t=pi/2
- int i=0
- ///////移动到起点
- mouse.mousemove(startx,convert.doubletoint(starty+mag*(p0+a*t)))
- help.sleep(2)
- // 按下鼠标左键开始准备画线。具体在游戏里使用的时候,这句要去掉
- // 因为这里是要在画板里画线看执行效果才加的鼠标按下命令
- mouse.leftdown()
- while(i<3000) // 这里表示一共执行3000次。 具体要执行多少次。根据不同情况调整
- r = p0+a*t //表示的是圆的半径
- // 计算鼠标移动的下一点坐标位置
- endx = startx+convert.doubletoint(mag*r*math.cos(t))
- endy = starty+convert.doubletoint(mag*r*math.sin(t))
- // t的增加值越大,跨的角度就越大。这个值的大小,可以自我调整达到理想状态
- // 比如增加量可以用以下的值 0.02 0.03 0.05 0.07 0.08 0.1 ……
- // 值越大,跨的角度越大,误差越大,但是消耗的时间短
- // 值越小,跨的角度越小,误差越小,但是消耗的时间长
- t = t + 0.01 // t = t + 0.05
- // 鼠标移动到下一点的位置,完成一次画线操作
- mouse.mousemove(endx,endy)
- // 此处的延时可以根据情况是否添加。
- help.sleep(2)
- //**************************************************
- // 此处可以加入判断鼠标特征码 颜色值等等是否与目标的一致,不一致的话就不管,继续执行
- // 一致的话,那么就进入判断语句,执行相应的功能,之后返回 真
- //**************************************************
- // 执行次数累加
- i = i + 1
- endwhile
- 返回 假
- 功能结束
- 空间结束
复制代码 |