Project hosting en google / con SVN
Abril 16, 2008
http://code.google.com/hosting/
de esta forma podemos tener un SVN, y vamos a poder trabajar sobre un repositorio común, hosteado por google.
la dinámica de laburo se hace muy copada con svn, la idea es que está todo en el repositorio y uno tiene una copia local.
las operaciones básicas son checkout para bajar del repositorio y commit para subir. y muchas otras cosas interesantes.
para manejar un SVN hay muchas formas, yo uso tortoise http://tortoisesvn.tigris.org/ que es una extesión del windows, pero hay muchos programas y plugins http://subversion.tigris.org/links.html#clients
con google code además tenemos un wiki. y nos da visibilidad en google.
lo que hay que resolver es que con esto el código va a ser abierto, es decir que va a ser bajable por cualquiera que lo encuentre en google code (no se si se puede hacer privado), cualquier puede hacer un checkout via svn, pero solo los miembros pueden hacer commit.
por otro lado hay que meterle una licencia opensource, con lo cual habría que decidir cual usar.
detección de colisiones
Abril 16, 2008
http://chrishecker.com/images/e/e7/Gdmphys3.pdf
ftp://ftp.cs.unc.edu/pub/users/manocha/PAPERS/COLLISION/sig96.pdf
jmonkey
http://www.jmonkeyengine.com/wiki/doku.php?id=collision_calculations
http://www.jmonkeyengine.com/wiki/doku.php?id=boundingvolume
http://www.jmonkeyengine.com/wiki/doku.php?id=obbtree
detección de colisiones
Abril 16, 2008
Interseccion Rectángulos
Abril 16, 2008
class Rect
{
int x, y, w, h;
Rect ( int xx, int yy, int ww, int hh )
{
x = xx; y = yy;
w = ww; h = hh;
}
boolean intersects ( Rect r )
{
// for positive values of w and h only.
// you have to check and flip values if they might be negative.
//
return !( x > r.x+r.w || x+w < r.x || y > r.y+r.h || y+h < r.y );
}
}
Processing + Eclipse
Abril 15, 2008
http://dev.processing.org/reference/everything/javadoc/processing/app/preproc/PdePreprocessor.html aca esta todo lo referido al preprocesador de processing, o sea, todas las clases que usa el IDE para convertir el .pde en codigo JAVA. esto es lo que hay que estudiar a fondo para usar processing en Eclipse. y aca va el post inciatico: http://processing.org/discourse/yabb_beta/YaBB.cgi?board=Integrate;action=display;num=1117133941 ahi esta todo de como hacerlo andar.
Rotar 3D
Abril 15, 2008
rotador… todos los que encontre usan matematica de matrices.
http://v3ga.free.fr/Java/ArcBall/
http://www.chronotext.org/bits/030/
la verdad de la milanga sobre matrices para escribir programas en 3d
http://www.geocities.com/SiliconValley/2151/matrices.html
todo viene de una matematica de Quaternios:
http://en.wikipedia.org/wiki/Quaternion
http://mathworld.wolfram.com/Quaternion.html
todo lo que hay que saber:
NURBS construcción de curvas 2D y 3D
Abril 15, 2008
3D a 2D
Abril 15, 2008
Punto de Vista – Proyecciones
Abril 15, 2008
processing usa proyeccion ortografica
http://en.wikipedia.org/wiki/Orthographic_projection
basicamente lo que hace es meter todo en una especie de caja y lo que vos ves (en el 2d del applet) es siempre la vista de alguna de esas caras. Ahora le agregaron la funcion perspective();
http://processing.org/learning/examples/perspective.html
que te permite cambiar el POV (point of view) y la perspectiva lo que hace que efectivamente, la relacion entre la distacia z y la proyeccion en la pantalla haga que los objetos mas lejanos ( < z) se vean mas chicos en proporcion a como se verian en modo normal.
Lo que hace es generar una imagen mas ajustada al mundo real.
por el contrario, la funcion ortho(); hace que todos los objetos con el mismo tamano se vean iguales no importa la distancia…
3D
Abril 15, 2008
pointIn2D.x = pointIn3D.x * focalLength/(focalLength + pointIn3D.z);
pointIn2D.y = pointIn3D.y * focalLength/(focalLength + pointIn3D.z);
http://www.kirupa.com/developer/actionscript/3dwireframe.htm