Example case studies

OpenGL Example

Installation needs:

  • OpenGL driver
  • GLUT

Code:

#include <stdio.h>
#include <stdlib.h>
#include <GL/glut.h>

/* ------------------------------------------------------------------------- */

int width = 512;
int height = 512;
float theta = 0.0f;

/* ------------------------------------------------------------------------- */

void display(void) {
  glViewport(0, 0, width, height);

  glClearColor(0.0f, 1.0f, 0.0f, 1.0f);
  glClear(GL_COLOR_BUFFER_BIT);

  glColor3f(0.0f, 0.0f, 0.0f);

  glMatrixMode(GL_MODELVIEW);
  glLoadIdentity();
  glRotatef(theta, 1.0f, 0.0f, 0.0f);
  glutWireTorus(0.3f, 0.7f, 10, 10);

  glutSwapBuffers();
}

/* ------------------------------------------------------------------------- */

void resize_window(int new_width, int new_height) {
  width = new_width;
  height = new_height;
}

/* ------------------------------------------------------------------------- */

void special_keys_handler(int key, int x, int y) {
  switch (key) {
    case GLUT_KEY_UP:
      theta += 5.0f;
      break;
    case GLUT_KEY_DOWN:
      theta -= 5.0f;
      break;
    default:
      break;
  }
  glutPostRedisplay();
}

/* ------------------------------------------------------------------------- */

int main(int argc, char **argv) {
  glutInitDisplayString("alpha rgba double");
  glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
  glutInitWindowSize(width, height);
  glutInit(&argc, argv);

  glutCreateWindow("3-D Application");
  glutDisplayFunc(display);
  glutReshapeFunc(resize_window);
  glutSpecialFunc(special_keys_handler);

  glutMainLoop();

  return 0;
}

/* ------------------------------------------------------------------------- */

Android example

Installation needs:

  • Eclipse
  • Android SDK
  • Eclipse ADT plugin
  • Android virtual device

Code:

public class Randaurant extends Activity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
  }

  @Override
  public boolean onTouchEvent(MotionEvent event) {
    TextView label = (TextView) findViewById(R.id.destination);
    label.setText(getRandomRestaurant());
    return true;
  }
  
  private static String getRandomRestaurant() {
    int random = new Random().nextInt(100) + 1;
    if (random < 10) {
      return "Hooligan's";
    } else if (random < 50) {
      return "Acoustic Cafe";
    } else {
      return "Fuji Steakhouse";
    }
  }
}

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *