Actionscript 2.0: Como dibujar un círculo

Actionscript 2.0: Como dibujar un círculo

Etiquetas: lineTo lineStyle beginFill

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. } 
Como hacer una pizarra en Actionscript 3.0

Como hacer una pizarra en Actionscript 3.0

Etiquetas: Shape lineStyle moveTo clear removeEventListener doubleClickEnabled

Como hacer una pizarra en Actionscript 3.0

Uno de los ejercicios típicos que se suelen hacer al comenzar a programar en Actionscript, es una pizarra.

En Actionscript 3.0 tenenmos que utilizar la clase Graphics. Podemos pintar dentro de cualquier objeto de visualización que tenga el atributo graphics (Shape, Sprite, MovieClip).

Lo primero que tenemos que hacer es definir el estilo de linea (color,grosor, etc) que vamos a utilizar en nuestro objeto. En este ejemplo vamos a dibujar en un Shape definido por la variable pizarra, por lo que podemos definir su estilo de linea asi:

  1. pizarra.graphics.lineStyle(10,0x000000);

Ahora tenemos el pincel en (0,0), con un grosor de 10 y color negro. Si queremos pintar una linea desde (100,100) hasta (200,200), tenemos que mover el pincel hasta (100,100). Para ello usamos la función moveTo(x,y);

  1. pizarra.graphics.moveTo(100,100);

Y ahora dibujamos la linea con lineTo:

  1. pizarra.graphics.lineTo(200,200);

Por último, si queremos borrar lo dibujado, utilizamos la función clear():

  1. pizarra.graphics.clear();

Hay que tener en cuenta que esta función borra además las definiciones de estilo de linea y relleno, por lo que antes de seguir dibujando debemos volver a hacerlas.

Actionscript 3.0: Simular el movimiento de una cuerda

Actionscript 3.0: Simular el movimiento de una cuerda

Etiquetas: addEventListener graphics clear moveTo lineStyle curveTo Math.sin Math.sqrt

Actionscript 3.0: Simular el movimiento de una cuerda

Cuando empecé a aprender Flash, lo que más me llamaba la atención eran los experimentos de páginas como uncontrol. Con el tiempo he ido viendo que algunos de esos experimentos no son tan complicados como me parecían, sino que son una mezcla de imaginación y matemáticas. Este es el código para simular el movimiento de una cuerda oscilando, utilizando la función curveTo y un poco de matemáticas.