Actionscript 2.0: Como dibujar un círculo

Actionscript 2.0: Como dibujar un círculo

Etiquetas: lineTo lineStyle beginFill


Deprecated: Function split() is deprecated in /home/km100runner/esedeerre.com/buscador.php on line 66

Actionscript 2.0: Como dibujar un círculo

En la API de dibujo de Actionscript 2.0 no existe ninguna función para dibujar directamente un círculo (en Actionscript 3.0 tenemos drawCircle()). Sin embargo, podemos dibujar círculos con dos métodos diferentes.

El primero es el más intuitivo. Se trata de unir diversos puntos con lineTo() para formar el círculo. Por ejemplo podemos utilizar una función como esta para crear un círculo:

  1. function circuloLine(px, py, radio, color, alfa) {
  2.   lineStyle(1,color,alfa);
  3.   beginFill(color,alfa);
  4.   moveTo(px+radio,py);
  5.   for (grados=0; grados<=360; grados++) {
  6.   x = radio*Math.cos(Math.PI/180*grados);
  7.   y = radio*Math.sin(Math.PI/180*grados);
  8.   lineTo(px+x, py+y);
  9.   }
  10.   endFill();
  11. } 

Como se puede ver en la función son matemáticas básicas. Unimos 360 puntos, calculando las coordenadas con seno y coseno, y forman un círculo. En realidad es un polígono de 360 lados, pero los lados no se ven planos porque son muy pequeños. Para figuras muy grandes, se podría mejorar la función utilizando curveTo() en lugar de lineTo():

  1. function circuloCurve(px, py, radio, color, alfa) {
  2. 	lineStyle(1,color,alfa);
  3. 	beginFill(color,alfa);
  4. 	moveTo(px+radio,py);
  5. 	for (grados=0; grados<=360; grados++) {
  6. 		x = radio*Math.cos(Math.PI/180*grados);
  7. 		y = radio*Math.sin(Math.PI/180*grados);
  8. 		curveTo(px+x,py+y,px+x,py+y);
  9. 	}
  10. 	endFill();
  11. } 

La función es la misma, pero en vez de unir los puntos por rectas, los unimos por curvas.

La tercera opción que conozco para dibujar un círculo, es la más rápida e ingeniosa. Se trata de dibujar una linea muy pequeña, pero con un grosor igual al diametro que buscamos. Sería como "dibujar un punto muy gordo". El resultado es el más exacto de los 3, además del más eficiente.

  1. function circuloPunto(px, py, radio, color, alpha){
  2.    lineStyle(radio*2, color,alpha);
  3.    moveTo(px,py); 
  4.    lineTo(px,py + 0.15);
  5. } 
Dibujar en un cristal con vaho en Actionscript 3.0

Dibujar en un cristal con vaho en Actionscript 3.0

Etiquetas: addEventListener MOUSE_MOVE drawCircle beginFill endFill


Deprecated: Function split() is deprecated in /home/km100runner/esedeerre.com/buscador.php on line 66

Dibujar en un cristal con vaho en Actionscript 3.0

Este ejemplo muestra como hacer el efecto de "pintar sobre el vaho" en un cristal. Esta es la manera más sencilla que en encontrado de hacerlo, desde el punto de vista de alguien con pocos conocimientos de programación. Para hacer este efecto necesitamos:

-Imagen del cristal con vaho:

Ventana con vaho

-Imagen de cristal sin vaho:

Imagen de cristal sin vaho

-Nociones de AS3 (Sobre todo de la API de dibujo)

Los pasos a seguir serían los siguientes:

-Importar las dos imágenes a Flash, y poner cada una en una capa (la imagen sin vaho por encima de la con vaho), en la posición (0,0)

-Crear un clip vacio y llamarlo "Mascara_mc". Ponerlo en (0,0)

-Hacer que "Mascara_mc" sea la mascara para la imagen sin vaho. Aquí tenemos un pequeño "problema", y es que al estar vacio, no nos va a aplicar bien la máscara. Por ello, antes de ponerlo como máscara, nos metemos dentro de "Mascara_mc" y dibujamos un pequeño cuadrado.

La linea de tiempo nos quedaría asi:

Linea de tiempo en Flash

-Por último, tenemos que programar la escena, para que cuando hagamos click, se dibuje dentro de "Mascara_mc" y se vaya destapando la imagen con vaho.

El código en Actionscript 3.0, y el resultado, son los siguientes: