Guest User

atuodraw v2

a guest
Jul 22nd, 2015
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.27 KB | None | 0 0
  1. package pkg_paintAsEngine;
  2.  
  3. import java.awt.AWTException;
  4. import java.awt.Robot;
  5. import java.awt.event.InputEvent;
  6. import java.awt.event.KeyEvent;
  7. import java.util.Random;
  8.  
  9. public class Drawing {
  10.    
  11.     private static final int TINY  = 1;
  12.     private static final int SMALL = 1000;
  13.     private static final int MEDIUM= 10000;
  14.     private static final int LARGE = 100000;
  15.     private static final int HUGE  = 1000000;
  16.     private static final int OMFG  = 10000000;
  17.    
  18.     private static Robot rob;
  19.     private static int topLeftCornX, topLeftCornY, canvWidth, canvHeight, clearBtnX, clearBtnY, massTxtBoxX, massTxtBoxY;
  20.    
  21.     public static void main(String[] args) throws AWTException {
  22.        
  23.         rob = new Robot();
  24.         rob.setAutoDelay(2);
  25.        
  26.         init(1, 90, 1920, 940, 180, 975, 75, 875);
  27.         waitForSeconds(5);
  28.         clearScreen();
  29.           chooseMass(OMFG);
  30.                 drawMass(canvWidth/2, canvHeight/2);
  31.                 chooseMass(SMALL);
  32.                 for(int i = 0; i < canvWidth/2 - 200; i+= 50){
  33.                         drawMass(i, canvHeight/2, 0, -70);
  34.                 }
  35.     }
  36.    
  37.     private static int function(int x){
  38.         return x * x;
  39.        
  40.     }
  41.    
  42.     private static void init (
  43.             int topLeftCornerX, int topLeftCornerY,
  44.             int canvasWidth, int canvasHeight,
  45.             int clearButtonX, int clearButtonY,
  46.             int massTextBoxX, int massTextBoxY) {
  47.        
  48.         topLeftCornX = topLeftCornerX;
  49.         topLeftCornY = topLeftCornerY;
  50.         canvWidth = canvasWidth;
  51.         canvHeight = canvasHeight;
  52.         clearBtnX = clearButtonX;
  53.         clearBtnY = clearButtonY;
  54.         massTxtBoxX = massTextBoxX;
  55.         massTxtBoxY = massTextBoxY;
  56.        
  57.     }
  58.    
  59.     private static void chooseMass(int mass){
  60.         rob.mouseMove(massTxtBoxX, massTxtBoxY);
  61.         click();
  62.         waitForSeconds(0.1);
  63.         click();
  64.         waitForSeconds(0.5);
  65.         typeNumber(mass);
  66.         waitForSeconds(0.1);
  67.     }
  68.    
  69.     private static void drawMass(int x, int y) {
  70.         click();
  71.         moveOnCanvas(x, y);
  72.         click();
  73.     }
  74.    
  75.     private static void drawMass (int x, int y, int moveVectorX, int moveVectorY) {
  76.         moveOnCanvas(x, y);
  77.         rob.mousePress(InputEvent.BUTTON1_DOWN_MASK);
  78.         moveOnCanvas(x + moveVectorX, y + moveVectorY);
  79.         rob.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
  80.     }
  81.    
  82.    
  83.     //useless?
  84. //  private static void drawRect (int x, int y, int width, int height) {}
  85.    
  86.     private static void drawCircle(int x, int y, int r, boolean random){
  87.         if(random){
  88.             for(int i = 0; i <= r/4; i++){
  89.                 int l = new Random().nextInt(r+1);
  90.                 int calcedX = (int) Math.sqrt((r * r) - (l * l));
  91.                 drawMass(x+calcedX, y + l);
  92.                 drawMass(x-calcedX, y + l);
  93.                 drawMass(x-calcedX, y - l);
  94.                 drawMass(x+calcedX, y - l);
  95.             }
  96.         }
  97.         else{
  98.             for(int i = 0; i <= r; i+=2){
  99.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  100.                 drawMass(x+calcedX, y + i);
  101.             }
  102.             for(int i = 0; i <= r; i+=2){
  103.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  104.                 drawMass(x-calcedX, y + i);
  105.             }
  106.             for(int i = 0; i <= r; i+=2){
  107.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  108.                 drawMass(x-calcedX, y - i);
  109.             }
  110.             for(int i = 0; i <= r; i+=2){
  111.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  112.                 drawMass(x+calcedX, y - i);
  113.             }
  114.         }
  115.     }
  116.    
  117.     private static void drawCircle(int x, int y, int r, boolean random, int moveVectorX, int moveVectorY){
  118.         if(random){
  119.             for(int i = 0; i <= r/4; i++){
  120.                 int l = new Random().nextInt(r+1);
  121.                 int calcedX = (int) Math.sqrt((r * r) - (l * l));
  122.                 drawMass(x+calcedX, y + l);
  123.                 drawMass(x-calcedX, y + l);
  124.                 drawMass(x-calcedX, y - l);
  125.                 drawMass(x+calcedX, y - l);
  126.             }
  127.         }
  128.         else{
  129.             for(int i = 0; i <= r; i+=2){
  130.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  131.                 drawMass(x+calcedX, y + i);
  132.             }
  133.             for(int i = 0; i <= r; i+=2){
  134.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  135.                 drawMass(x-calcedX, y + i);
  136.             }
  137.             for(int i = 0; i <= r; i+=2){
  138.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  139.                 drawMass(x-calcedX, y - i);
  140.             }
  141.             for(int i = 0; i <= r; i+=2){
  142.                 int calcedX = (int) Math.sqrt((r * r) - (i * i));
  143.                 drawMass(x+calcedX, y - i);
  144.             }
  145.         }
  146.     }
  147.    
  148.     private static void drawFunction(int xAxisScale, int yAxisScale){
  149.         int i = 0;
  150.         while(i * xAxisScale < canvWidth && function(i) * yAxisScale < canvHeight && i <= 100){
  151.             drawMass(i * xAxisScale, function(i) * yAxisScale);
  152.             i++;
  153.         }
  154.     }
  155.    
  156.     private static void clearScreen () {
  157.         rob.mouseMove(clearBtnX, clearBtnY);
  158.         click();
  159.     }
  160.    
  161.     private static void click () {
  162.         rob.mousePress(InputEvent.BUTTON1_DOWN_MASK);
  163.         rob.mouseRelease(InputEvent.BUTTON1_DOWN_MASK);
  164.     }
  165.    
  166.     private static void moveOnCanvas(int x, int y){
  167.         if(!(x > canvWidth || y > canvHeight || x < 0 || y < 0)) rob.mouseMove(topLeftCornX + x, topLeftCornY + y);
  168.     }
  169.    
  170.     private static void waitForSeconds(double seconds){
  171.         long startTime = System.currentTimeMillis();
  172.         while(((double)(System.currentTimeMillis() - startTime))/1000 <= seconds) {
  173.             //wait patiently
  174.         }
  175.     }
  176.    
  177.     private static int averageVal(int[] values){
  178.         int addedVals = 0;
  179.         for(int i = 0; i < values.length; i++){
  180.             addedVals += values[i];
  181.         }
  182.         return addedVals / values.length;
  183.     }
  184.    
  185.     private static void typeNumber(int n){
  186.         char[] ca = String.valueOf(n).toCharArray();
  187.         for(char c : ca){
  188.             typeNumberKey(c);
  189.         }
  190.     }
  191.    
  192.     private static void typeNumberKey(char n){
  193.         switch(n){
  194.             case '0':
  195.                 rob.keyPress(KeyEvent.VK_0);
  196.                 rob.keyRelease(KeyEvent.VK_0);
  197.                 break;
  198.             case '1':
  199.                 rob.keyPress(KeyEvent.VK_1);
  200.                 rob.keyRelease(KeyEvent.VK_1);
  201.                 break;
  202.             case '2':
  203.                 rob.keyPress(KeyEvent.VK_2);
  204.                 rob.keyRelease(KeyEvent.VK_2);
  205.                 break;
  206.             case '3':
  207.                 rob.keyPress(KeyEvent.VK_3);
  208.                 rob.keyRelease(KeyEvent.VK_3);
  209.                 break;
  210.             case '4':
  211.                 rob.keyPress(KeyEvent.VK_4);
  212.                 rob.keyRelease(KeyEvent.VK_4);
  213.                 break;
  214.             case '5':
  215.                 rob.keyPress(KeyEvent.VK_5);
  216.                 rob.keyRelease(KeyEvent.VK_5);
  217.                 break;
  218.             case '6':
  219.                 rob.keyPress(KeyEvent.VK_6);
  220.                 rob.keyRelease(KeyEvent.VK_6);
  221.                 break;
  222.             case '7':
  223.                 rob.keyPress(KeyEvent.VK_7);
  224.                 rob.keyRelease(KeyEvent.VK_7);
  225.                 break;
  226.             case '8':
  227.                 rob.keyPress(KeyEvent.VK_8);
  228.                 rob.keyRelease(KeyEvent.VK_8);
  229.                 break;
  230.             case '9':
  231.                 rob.keyPress(KeyEvent.VK_9);
  232.                 rob.keyRelease(KeyEvent.VK_9);
  233.                 break;
  234.             default:
  235.                 System.out.println("Use typeNumber(int n) for numbers larger than 9!");
  236.                 break;
  237.         }
  238.     }
  239. }
Advertisement
Add Comment
Please, Sign In to add comment