Android Open Source - TicTacToe3D T T T3d O Shape






From Project

Back to project page TicTacToe3D.

License

The source code is released under:

MIT License

If you think the Android project TicTacToe3D listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
 * Classe que desenha um c?rculo como uma pe?a 
 * do jogo da velha 3D/*w ww. java2 s .c  o m*/
 *  
 * Refer?ncia:
 * http://slabode.exofire.net/circle_draw.shtml
 * 
 */
package com.unibh.dcet.ccc.android.tictactoe3d.view;

import javax.microedition.khronos.opengles.GL;
import javax.microedition.khronos.opengles.GL10;

import android.util.Log;

/**
 * Classe que desenha a pe?a O do jogo da velha  
 * 
 */
public class TTT3dOShape extends TTT3dDrawable {
  
    private Grid mGrid;

    /**
   *  
   * 
   */
  public TTT3dOShape(GL10 gl, float majorR, float minorR, int num_segments) {

    checkGLError(gl);

    mGrid = generateTorusGrid(gl, num_segments, num_segments, 
                              majorR, minorR);
    checkGLError(gl);

  }
  
    private Grid generateTorusGrid(GL gl, int uSteps, int vSteps, float majorRadius, float minorRadius) {
        Grid grid = new Grid(uSteps + 1, vSteps + 1);
        for (int j = 0; j <= vSteps; j++) {
            double angleV = Math.PI * 2 * j / vSteps;
            float cosV = (float) Math.cos(angleV);
            float sinV = (float) Math.sin(angleV);
            for (int i = 0; i <= uSteps; i++) {
                double angleU = Math.PI * 2 * i / uSteps;
                float cosU = (float) Math.cos(angleU);
                float sinU = (float) Math.sin(angleU);
                float d = majorRadius+minorRadius*cosU;
                float x = d*cosV;
                float y = d*(-sinV);
                float z = minorRadius * sinU;

                float nx = cosV * cosU;
                float ny = -sinV * cosU;
                float nz = sinU;

                //float length = (float) Math.sqrt(nx*nx + ny*ny + nz*nz);
                //nx /= length;
                //ny /= length;
                //nz /= length;

                grid.set(i, j, x, y, z, nx, ny, nz);
            }
        }
        grid.createBufferObjects(gl);
        return grid;
    }
    
  public void draw(GL10 gl) {
    gl.glPushMatrix();
      gl.glColor4f(red, green, blue, alfa);
      gl.glRotatef(-90, 1, 0, 0);
      gl.glRotatef(180, 0, 1, 0);
      mGrid.draw(gl);
    gl.glPopMatrix();
  }

    static void checkGLError(GL gl) {
        int error = ((GL10) gl).glGetError();
        if (error != GL10.GL_NO_ERROR) {
        Log.d("Erro", "TTT3dOShape: GLError 0x" + Integer.toHexString(error));
          //throw new RuntimeException("TTT3dOShape: GLError 0x" 
          //                            + Integer.toHexString(error));
        }
    }
}




Java Source Code List

com.unibh.dcet.ccc.android.tictactoe3d.TTT3dActivity.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dController.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dModel.java
com.unibh.dcet.ccc.android.tictactoe3d.TTT3dView.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.ArtificialInteligence.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.DotAI.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Dot.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Environment.java
com.unibh.dcet.ccc.android.tictactoe3d.ai.Line.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Circle.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Cylinder.java
com.unibh.dcet.ccc.android.tictactoe3d.view.Grid.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dBoard.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dDrawable.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dGridShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dLine.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dOShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dSquareShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dViewSelector.java
com.unibh.dcet.ccc.android.tictactoe3d.view.TTT3dXShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.Sphere.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dOShape.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dXShape2.java
com.unibh.dcet.ccc.android.tictactoe3d.view.obsolete.TTT3dXShape.java