AutoJs曲线滑动---贝塞尔曲线

简介: AutoJs曲线滑动---贝塞尔曲线


也不是我原创,网上其实有很多。主要是我有个地方一直在多次调用我就给纠正一下仅此而已。

xxyy = [parseInt(bezier_curves(point, i).x), parseInt(bezier_curves(point, i).y)]

贝斯尔曲线方法会被调用2次,浪费手机CPU我给改了一下调用一次就好了。

另外我在某App上测试了这个方法是可以的,代码公布如下:

auto.waitFor();
let see_count =300;// rawInput('请输入滑动次数','1000');
app.launchApp('抖音极速版');
sleep(5000);
console.show(); //开启日志(悬浮窗权限)
for (var i = 1; i < see_count; i++) {
    toastLog("抖音极速版滑动" + i + '次'+"总计:"+ see_count + "次")
    sml_move(device.width / 2, device.height*0.8, device.width / 2,  device.height*0.1, 300);
    let delayTime = random(8000, 12000);
    sleep(delayTime);
}
/**
 * 贝塞尔曲线
 * @param {坐标点} ScreenPoint 
 * @param {偏移量} Offset 
 */
function bezier_curves(ScreenPoint, Offset) {
    cx = 3.0 * (ScreenPoint[1].x - ScreenPoint[0].x);
    bx = 3.0 * (ScreenPoint[2].x - ScreenPoint[1].x) - cx;
    ax = ScreenPoint[3].x - ScreenPoint[0].x - cx - bx;
    cy = 3.0 * (ScreenPoint[1].y - ScreenPoint[0].y);
    by = 3.0 * (ScreenPoint[2].y - ScreenPoint[1].y) - cy;
    ay = ScreenPoint[3].y - ScreenPoint[0].y - cy - by;
    tSquared =Offset * Offset;
    tCubed = tSquared * Offset;
    result = {
        "x": 0,
        "y": 0
    };
    result.x = (ax * tCubed) + (bx * tSquared) + (cx * Offset) + ScreenPoint[0].x;
    result.y = (ay * tCubed) + (by * tSquared) + (cy * Offset) + ScreenPoint[0].y;
    return result;
};
/**
 * 曲线滑动
 * @param {*} qx 
 * @param {*} qy 
 * @param {*} zx 
 * @param {*} zy 
 * @param {*} time 
 */
function sml_move(qx, qy, zx, zy, time) {
    var xxy = [time];
    var point = [];
    var dx0 = {
        "x": qx,
        "y": qy
    };
    var dx1 = {
        "x": random(qx - 100, qx + 100),
        "y": random(qy, qy + 50)
    };
    var dx2 = {
        "x": random(zx - 100, zx + 100),
        "y": random(zy, zy + 50),
    };
    var dx3 = {
        "x": zx,
        "y": zy
    };
    for (var i = 0; i < 4; i++) {
        eval("point.push(dx" + i + ")");
    };
    for (let i = 0; i < 1; i += 0.08) {
        let newPoint=bezier_curves(point, i);
        xxyy = [parseInt(newPoint.x), parseInt(newPoint.y)]
        xxy.push(xxyy);
    }
    gesture.apply(null, xxy);
};

 

目录
相关文章
|
7天前
PPT 动画-多层旋转(圆角三角形)
PPT 动画-多层旋转(圆角三角形)
15 0
|
7天前
|
缓存 图形学 C++
Unreal学习笔记2-绘制简单三角形
Unreal学习笔记2-绘制简单三角形
|
7天前
|
程序员 C# 图形学
Unity3D学习笔记1——绘制一个三角形
Unity3D学习笔记1——绘制一个三角形
14 0
|
11月前
|
C++ Python
C++ VTK鼠标网格表面绘制曲线
C++ VTK鼠标网格表面绘制曲线
329 0
C++ VTK鼠标网格表面绘制曲线
|
C语言
旋转的沙漏-[ Qt绘制旋转图像]
旋转的沙漏-[ Qt绘制旋转图像]
125 0
|
前端开发 JavaScript
canvas中的拖拽、缩放、旋转 (上) —— 数学知识准备
canvas中的拖拽、缩放、旋转 (上) —— 数学知识准备
817 0
canvas中的拖拽、缩放、旋转 (上) —— 数学知识准备
|
前端开发 Android开发
autojs加载3D旋转立方体效果
autojs加载3D旋转立方体效果
356 0
|
Android开发
|
Android开发
autojs圆形波纹和方形波纹
牙叔教程 简单易懂
134 0
|
前端开发 Python
不到200行代码实现一个不断旋转的椭圆动画效果
不到200行代码实现一个不断旋转的椭圆动画效果
266 0
不到200行代码实现一个不断旋转的椭圆动画效果