dome

/**
      * 寻找节点并点击
      *
      * @param node节点
      * @throws UiObjectNotFoundException
      */
      public void access(String node ) throws UiObjectNotFoundException {
          UiObject object ;
          sleep(1000);
          in: for ( int i = 0; i < 30; i ++) {
               object = new UiObject( new UiSelector().text( node ));
               if ( object .exists()) {
                   sleep(1000);
                    object .click();
                   sleep(1000);
                    break in;
              } else {
                   sleep(1000);
              }
          }
     }

      /**
      * 点击左上角
      *
      * @param node 节点
      * @throws UiObjectNotFoundException
      */
      public void accessTopLeft(String node ) throws UiObjectNotFoundException {
          UiObject object ;
          Rect r ;

          in: for ( int i = 0; i < 30; i ++) {
               object = new UiObject( new UiSelector().text( node ));
               if ( object .exists()) {
                    r = object .getBounds();
                   sleep(1000);
                   UiDevice.getInstance().click( r . left , ( r . top - 5));
                   sleep(1000);
                    break in;
              } else {
                   sleep(1000);
              }
          }

     }
     
      /**
      * 读取文件
      * @param path     文件路径
      * @param jsonContent   需要解析的内容
      * @return
      * @throws IOException
      */
      public String FileOut(String path , String jsonContent ) throws IOException {
          String content = "" ; // 文件内容字符串
           // 打开文件
          File file = new File( path );
           // 如果path是传递过来的参数,可以做一个非目录的判断
           if ( file .isDirectory()) {
          } else {
              BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream( file ), "UTF-8" ));
               if ( in != null ) {
                   String line ;
                    // 分行读取
                    while (( line = in .readLine()) != null ) {
                         content += line ;
                   }
                    in .close();
              }
          }
           return content ;

     }
     
      /**
      * 获取聊天结果后解析
      *
      * @param jsonContent        需要解析的内容
      *           
      * @param jsonResult    需要解析的结果
      *           
      * @throws IOException
      * @throws JSONException
      */
      public String getJosn(String jsonContent , String jsonResult ) throws IOException {
          String con = jsonContent ;
          JSONObject root ;
           try {
               root = new JSONObject( con .toString());
               con = root .getString( jsonResult );
          } catch (Exception e ) {
               // TODO : handle exception
               e .printStackTrace();
          }
           return con ;
     }
     
      /**
      * 随机时间 3 - 5秒
      *
      * @return
      */
      public void reminderSleep() {

          java.util.Random random = new java.util.Random();
           int result = random .nextInt(2);
           int i = ( result + 3) * 1000;
          sleep( i );
     }
     
      /**
      * 随机数
      *
      * @param n 0 - n种随机数字
      * @return
      */
      public int randomN( int n ) {
           int i = 0;
          java.util.Random random = new java.util.Random();
           i = random .nextInt( n );

           return i ;
     }
     
      /**
      * linux命令
      * @param cmd 需要执行的命令
      * @throws IOException
      */
      public void cmd(String cmd ) throws IOException {
          
          Runtime.getRuntime().exec( cmd );
          sleep(1000);
     }
     
      /**
      * 三次返回并点击Home键
      */
      public void back() {
          UiDevice.getInstance().pressBack();
          UiDevice.getInstance().pressBack();
          UiDevice.getInstance().pressBack();
          UiDevice.getInstance().pressHome();
     }
     
      /**
      * 获取当前时间并判断
      * @param time需要判断的时间
      * @return
      * @throws InterruptedException
      */
      public boolean time(String time ) throws InterruptedException {
          in: for ( int i = 0; i < 20; i ++) {
              SimpleDateFormat format = new SimpleDateFormat( "yyyy:MM:dd HH:mm:ss" );
              String str = format .format( new Date());
               if ( str .equals( time )) {
                    break in;
              } else {
                   Thread.sleep(60000);
              }    
          }
           return true ;
     }
     
     
      /**
      * 写入一个JSON
      * @param  runPath 路径
      * @param s
      * @throws IOException
      */
      public void putJSON(String runPath ) throws IOException {
           // SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd
           // HH:mm:ss");
           // String str = format.format(new Date());
           runPath = "mnt/sdcard/wlk/config/1.txt" ;

              FileWriter fw   = new FileWriter( runPath , true );
               fw .write( "{" );
               for ( int i = 1; i < 2000; i ++) {
                    fw .write( "\"N" + i + "账号\":\"" + "\r\n" );
                    fw .write( "\",\"N" + i + "密码\":\"" + "\r\n" );
                    fw .write( "\"," );
              }
               fw .write( "}" );
               fw .flush();
               fw .close();

     }
     
      /**
      * 写入
      * @param path     路径
      * @param content  写入内容
      * @throws IOException
      */
      public void putContent(String path , String content ) throws IOException {
          FileWriter fw = new FileWriter( path , true );       //true 不覆盖写入
           fw .write( content );
           fw .flush(); //清控队列
           fw .close(); //关闭
     }
     
      /**
      * 获得输入框 输入内容 并点击发送
      * @param content  需要输入的内容 输入中文需要切换输入法
      * @throws UiObjectNotFoundException
      * @throws IOException
      */
      public void setText(String content ) throws UiObjectNotFoundException, IOException {        
          UiObject object ;
          String cmd2 = "am broadcast -a com.example.android.softkeyboard -e content " ;
           object = new UiObject( new UiSelector().className(EditText. class .getName()));
           if ( object .exists()) {
              Runtime.getRuntime().exec( cmd2 +escape( content ));
              sleep(1000);
              
               object = new UiObject( new UiSelector().text( "发送" ));
               object .click();
              sleep(1000);
          }
     }
     
      /**
      * 截图后另存为
      *
      * @param rect
      * @param path
      */
      public void cutBitmp(Rect rect , String path , int a ) {
          Bitmap m = BitmapFactory.decodeFile( path );
           m = m .createBitmap( m , rect . left , rect . top , rect .width(), rect .height());
          saveBitMapToSdcard( m , "talk" + a );
     }

      /**
      * 获得全图并从全图中截图
      *
      * @param m
      * @param newName
      */
      public void saveBitMapToSdcard(Bitmap m , String newName ) {
          FileOutputStream out = null ;
           try {
               out = new FileOutputStream( "/mnt/sdcard/wlk/image/" + newName + ".jpg" );
               if ( out != null ) {
                    m .compress(Bitmap.CompressFormat. JPEG , 90, out );
                    out .close();
              }
          } catch (Exception e ) {
               throw new RuntimeException( e );
          }
     }
     
     
      /**
      * 执行ADB命令并获取返回值
      *
      * @throws UnsupportedEncodingException
      */
      public String testcmd(String cmd ) throws UnsupportedEncodingException {
     
          String coordinate = "" ;
          String strLine = null ;

           try {
               // Runtime对象
              Runtime runtime = Runtime.getRuntime();
               // 执行命令,并且获得Process对象
              Process process = runtime .exec( cmd );
               // 获得结果的输入流
              InputStream input = process .getInputStream();
              BufferedReader br = new BufferedReader( new InputStreamReader( input ));
               while ( null != ( strLine = br .readLine())) {
                    coordinate += strLine ;
              }
               br .close();
               input .close();
                                           
          } catch (IOException e ) {
               e .printStackTrace();
          }
           return coordinate ;

     }
     
     
     
      public static String escape(String s ) { 
         StringBuffer sbuf = new StringBuffer(); 
         int len = s .length(); 
         for ( int i = 0; i < len ; i ++) { 
             int ch = s .charAt( i ); 
             if ( 'A' <= ch && ch <= 'Z' ) { 
                 sbuf .append(( char ) ch ); 
             } else if ( 'a' <= ch && ch <= 'z' ) { 
                 sbuf .append(( char ) ch ); 
             } else if ( '0' <= ch && ch <= '9' ) { 
                 sbuf .append(( char ) ch ); 
             } else if ( ch == '-' || ch == '_' || ch == '.' || ch == '!'  
                     || ch == '~' || ch == '*' || ch == '\'' || ch == '('  
                     || ch == ')' ) { 
                 sbuf .append(( char ) ch ); 
             } else if ( ch <= 0x007F) { 
                 sbuf .append( '%' ); 
                 sbuf .append( hex [ ch ]); 
             } else
                 sbuf .append( '%' ); 
                 sbuf .append( 'u' ); 
                 sbuf .append( hex [( ch >>> 8)]); 
                 sbuf .append( hex [(0x00FF & ch )]); 
             } 
         } 
         return sbuf .toString(); 
     } 

private final static String[] hex = { "00" , "01" , "02" , "03" , "04" , "05"
        "06" , "07" , "08" , "09" , "0A" , "0B" , "0C" , "0D" , "0E" , "0F" , "10"
        "11" , "12" , "13" , "14" , "15" , "16" , "17" , "18" , "19" , "1A" , "1B"
        "1C" , "1D" , "1E" , "1F" , "20" , "21" , "22" , "23" , "24" , "25" , "26"
        "27" , "28" , "29" , "2A" , "2B" , "2C" , "2D" , "2E" , "2F" , "30" , "31"
        "32" , "33" , "34" , "35" , "36" , "37" , "38" , "39" , "3A" , "3B" , "3C"
        "3D" , "3E" , "3F" , "40" , "41" , "42" , "43" , "44" , "45" , "46" , "47"
        "48" , "49" , "4A" , "4B" , "4C" , "4D" , "4E" , "4F" , "50" , "51" , "52"
        "53" , "54" , "55" , "56" , "57" , "58" , "59" , "5A" , "5B" , "5C" , "5D"
        "5E" , "5F" , "60" , "61" , "62" , "63" , "64" , "65" , "66" , "67" , "68"
        "69" , "6A" , "6B" , "6C" , "6D" , "6E" , "6F" , "70" , "71" , "72" , "73"
        "74" , "75" , "76" , "77" , "78" , "79" , "7A" , "7B" , "7C" , "7D" , "7E"
        "7F" , "80" , "81" , "82" , "83" , "84" , "85" , "86" , "87" , "88" , "89"
        "8A" , "8B" , "8C" , "8D" , "8E" , "8F" , "90" , "91" , "92" , "93" , "94"
        "95" , "96" , "97" , "98" , "99" , "9A" , "9B" , "9C" , "9D" , "9E" , "9F"
        "A0" , "A1" , "A2" , "A3" , "A4" , "A5" , "A6" , "A7" , "A8" , "A9" , "AA"
        "AB" , "AC" , "AD" , "AE" , "AF" , "B0" , "B1" , "B2" , "B3" , "B4" , "B5"
        "B6" , "B7" , "B8" , "B9" , "BA" , "BB" , "BC" , "BD" , "BE" , "BF" , "C0"
        "C1" , "C2" , "C3" , "C4" , "C5" , "C6" , "C7" , "C8" , "C9" , "CA" , "CB"
        "CC" , "CD" , "CE" , "CF" , "D0" , "D1" , "D2" , "D3" , "D4" , "D5" , "D6"
        "D7" , "D8" , "D9" , "DA" , "DB" , "DC" , "DD" , "DE" , "DF" , "E0" , "E1"
        "E2" , "E3" , "E4" , "E5" , "E6" , "E7" , "E8" , "E9" , "EA" , "EB" , "EC"
        "ED" , "EE" , "EF" , "F0" , "F1" , "F2" , "F3" , "F4" , "F5" , "F6" , "F7"
        "F8" , "F9" , "FA" , "FB" , "FC" , "FD" , "FE" , "FF" }; 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当谈到OpenGL的基础示例时,一个常见的Dome(圆顶)场景是一个不错的选择。以下是一个简单的基础示例,展示了如何使用OpenGL绘制一个简单的圆顶场景: ```cpp #include <GL/glut.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // 设置相机位置和朝向 gluLookAt(0.0, 0.0, 5.0, // 相机位置 0.0, 0.0, 0.0, // 目标位置 0.0, 1.0, 0.0); // 上方向 // 绘制圆顶 glColor3f(1.0, 1.0, 1.0); // 设置颜色为白色 glutWireSphere(2.0, 20, 20); // 绘制一个半径为2的圆顶 glFlush(); glutSwapBuffers(); } void reshape(int width, int height) { glViewport(0, 0, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0, (GLfloat)width / (GLfloat)height, 0.1, 100.0); glMatrixMode(GL_MODELVIEW); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(800, 600); glutCreateWindow("OpenGL Dome"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutMainLoop(); return 0; } ``` 在这个示例中,我们使用了OpenGL的固定管线(Fixed Pipeline)来绘制圆顶。首先,我们设置了相机的位置和朝向,然后绘制一个简单的圆顶,使用`glutWireSphere`函数来创建一个具有指定半径和细分级别的球体。 在`main`函数中,我们初始化了OpenGL环境,并创建了一个窗口。然后,我们指定了显示函数`display`和重塑函数`reshape`。在显示函数中,我们清空颜色缓冲区和深度缓冲区,并使用`gluLookAt`函数设置相机视角。然后,我们绘制圆顶,并刷新缓冲区。 编译并运行这个示例程序,你将看到一个简单的圆顶场景。 希望这个基础示例对你有帮助!如果你还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值