android uiautomator一個畫心形圖案的方法--代碼的浪漫

本人在uiautomator學習math方法的時候,突發奇想一想畫一個心形的圖案,試了幾回終於成功了。分享出來,請大神指正。其中主要用到了數學上心的極座標方程式,而後經過math類的一些方法進行轉化,使用swipe方法在手機屏幕上滑動。手機屏幕座標點(x,y)與數學上的座標系有些差別,須要轉換。java

public void heart(int x, int y, int r) {//畫心形的方法
        double d = (double) (Math.PI / 30);
        double[] angle = new double[61];//設置角度差
        for (int i = 0; i < 61; i++) {
            angle[i] = i * d;
        }
//創建一個角度差double數組
        double[] ox = new double[61];
        for (int i = 0; i < 61; i++) {
            ox[i] = r * (2 * Math.cos(angle[i]) - Math.cos(2 * angle[i]));
        }
//計算x座標
        double[] oy = new double[61];
        for (int i = 0; i < 61; i++) {
            oy[i] = r * (2 * Math.sin(angle[i]) - Math.sin(2 * angle[i]));
        }
//計算y座標
        Point[] heart = new Point[61];
        for (int i = 0; i < 61; i++) {
            heart[i] = new Point();
            heart[i].x = (int) oy[i] + x;
            heart[i].y = -(int) ox[i] + y;
        }
//簡歷一個點數組,這裏座標必定要轉化一下,否則是倒着的心形
        getUiDevice().swipe(heart, 2);
    }

x和y表示心中心座標,r是半徑,都是參數。這個方法和畫圓相似,不過改了一下數學方程,旋轉了一下座標。編程

往期文章精選

  1. java一行代碼打印心形
  2. Linux性能監控軟件netdata中文漢化版
  3. 接口測試代碼覆蓋率(jacoco)方案分享
  4. 性能測試框架
  5. 如何在Linux命令行界面愉快進行性能測試
  6. 圖解HTTP腦圖
  7. 寫給全部人的編程思惟
  8. 測試之JVM命令腦圖
  9. 將json數據格式化輸出到控制檯
  10. 如何測試機率型業務接口
  11. 「雙花」BUG的測試分享
  12. 將swagger文檔自動變成測試代碼
  13. Mac+httpclient高併發配置實例

公衆號地圖 ☢️ 一塊兒來~FunTester

相關文章
相關標籤/搜索