Posicionar vértices en Papervision3D | ||||
Etiquetas: vertex WireFrameMaterial | ||||
Los elementos 3D (planos, esferas, modelos 3d, etc) están compuestos de triángulos. Por ejemplo, si creamos un plano en Papervision3D con un WireframeMaterial con la siguiente sintaxis:
obtenemos un resultado parecido a este:
Los vértices de un objeto están almacenados en un Array (vertex) dentro de la propiedad geometry del objeto. Por ejemplo, en el caso de nuestro plano podemos recorrer los vértices con este bucle:
Los números que he colocado sobre la imagen anterior, indican el orden en el que aparecen los vértices en esta matriz. Podemos observar que un plano por n x m segmentos, tiene (n+1) x (m+1) vértices. En nuestro caso, el plano de 4x3 segmentos, tiene 5x4 vértices, ordenados de abajo arriba y de izquierda a derecha. Estos vértices tienen unas coordenadas, que dan a la malla la apariencia de plano, y se pueden modificar. Por ejemplo imaginemos que queremos hacer un carrusel circular compuesto por 8 planos. Podemos crear los 8 planos, y distribuirlos en el círculo mirando al centro, con lo que obtendríamos algo asi (click en la imagen para ver): El efecto es resulton, pero si nos fijamos, los planos aparecen rígidos y no se adaptan a la forma del círculo. Para solucionarlo, podemos posicionar los vértices de los planos en el círculo, en lugar de los propios planos, con lo que obtendríamos algo asi (click en la imagen para ver): Aunque en principio puede parecer muy complejo "posicionar vértices", en realidad haciendo un par de ejemplos se entiende perfectamente, y en algunos proyectos puede mejorar mucho los resultados. Dejo los fuentes comentados, para poder probar las dos opciones y ver las diferencias. | ||||
Pixelando imágenes en Actionscript 3.0 | ||||
Etiquetas: Bitmapdata threshold getPixel32 draw | ||||
Este post es una modificación de En el anterior recortaba una imagen en cuadrados, comprobando si contenían algún pixel transparente o no. En este divido la imagen en cuadrados, calculo el color que aparece mas veces en ese cuadrado, y creo un Shape relleno de ese color que coloco en las coordenadas del cuadrado. Las función que calcula el color dominante es esta:
| ||||
Realidad Aumentada y Físicas con FlarToolKit y FOAM | ||||
Etiquetas: FlarToolKit | ||||
![]() | ||||
Esta noche me he puesto por primera vez con Realidad Aumentada (FlarToolKit) y la cosa parece bastante sencilla (por lo menos a un nivel básico de uso) . He hecho una demo en la que controlo unos cubos sobre una superficie plana, mezclando Papervision y FOAM. De momento dejo un video tras el salto, cuando tenga una visión mas clara de la librería, haré un tutorial. | ||||
Envio de email con adjuntos en AS3 y PHP | ||||
Etiquetas: FileReference FileFilter URLRequest | ||||
Este ejemplo muestra como hacer un formulario en Flash (Actionscript 3.0) con envio de adjuntos. El esquema básico es que hacemos una subida normal con FileReference, y en el URLRequest de la subida incluimos las variables que queramos adjuntar en el formulario:
Estas variables las recogemos después en el PHP con el nombre que les hayamos puesto con:
En el php tenemos el código típico de una subida, y una vez terminada pasamos a montar el correo electrónico. Dejo los fuentes con el fla, la clase Formulario, y el php para la subida. El código php es una versión adaptada del que podéis encontrar en | ||||
Estadísticas de esedeerre en 2010 | ||||
| ||||
Adobe Flash Player 10.1 | ||||
![]() | ||||
A partir de esta semana está disponible en Adobe Labs la beta de Adobe Flash Player 10.1. Ha sido muy comentado el soporte multitouch del player, pero a mi lo que mas "ilusión" me ha hecho ha sido el manejo de errores global, que permite centralizar el manejo de todos los errores en tiempo de ejecución. | ||||
Bug en la función updateBitmap() de MovieMaterial en Papervision3D 2.0 GreatWhite | ||||
Etiquetas: updateBitmap() drawBipmap() | ||||
Esta semana me he vuelto a topar con este bug de la clase MovieMaterial en Papervision 2.0 GreatWhite. Si utilizamos un MovieClip como material, utilizando MovieMaterial, y este vá a cambiar en algún momento, pero no queremos utilizar el atribute animated para conservar recursos, podemos llamar a la funcion updateBitmap() para actualizar el material solo cuando sea necesario. El problema es que en esta versión de Papervision, la función updateBitmap() definida en MaterialObject3D, está vacía (literalmente). Para solucionar este inconveniente, podemos llamar a la función drawBitmap de la clase MovieMaterial. Por ejemplo:
| ||||
Error de seguridad al utilizar computeSpectrum | ||||
Etiquetas: computeSpectrum | ||||
Me topé con este error hace varios meses por casualidad. Siempre suelo tener abierto el player de No le dí mucha importancia hasta que me tocó programar un player para una web y tuve que utilizar computeSpectrum. Lo comenté en la lista de ASNativos, y Cay pasó este enlace: Resulta que es un error sin solución hasta el momento, asi que si alguna vez hacéis una aplicación que utilice computeSpectrum, tenedlo en cuenta: no funciona si tienes abierto un player de audio o video (youtube, vimeo...) en otra ventana. | ||||
Reconocer caras con Marilena (Actionscript 3.0) | ||||
![]() | ||||
Marilena es una librería de reconocimiento de formas, portada de OpenCV a Actionscript 3 por
En el ejemplo que muestro podéis ver como funciona esta librería, aprovechando también las mejoras que hizo Dejo también los fuentes, que incluyen las clases de Masakazu y Quasimondo. | ||||
Publicado el primer libro de Papervision | ||||
![]() | ||||
La editorial Está escrito por Jeff Winder y Paul Tondeur, y según palabras textuales de Carlos Ulloa, está "de puta madre". Los contenidos son: Preface
Chapter 1: Setting Up Se puede comprar | ||||