本人在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是半徑,都是參數。這個方法和畫圓相似,不過改了一下數學方程,旋轉了一下座標。編程