• inicio
  • tutoriales flash
  • trucos flash
  • faq's flash
  • enlaces flash
  • suscribirse al feed RSS

Truco FLASH - Dibujar una circunferencia con la API de dibujo de Flash.

| | Más

Con la API de dibujo de Flash podemos crear en tiempo de ejecución formas con rellenos y contornos. Si queremos dibujar un círculo con la API tendremos que emplear el método curveTo un mínimo de 8 veces para que la circunferencia salga completamente redonda. En el bloque de código que os mostramos a continuación, definimos una función dibujarCirculo que nos automatiza el proceso de creación.

// función auxiliar para convertir de grados sexagesimales a radianes
function convertirRadianes(grados:Number):Number {
	return grados * Math.PI / 180;
}
// x0 y y0 son las coordenadas del centro del círculo
// radio es el radio del circulo
function dibujarCirculo(x0:Number, y0:Number, radio:Number):Void {
	// número de iteraciones del método curveTo empleadas (mínimo 8)
	var numPasos:Number = 8;
	// distancia del manejador de la curva al centro (vble auxiliar)
	var distancia_manejador:Number = radio/Math.cos(convertirRadianes(180/numPasos));
	// lienzo -> clip donde dibujo el círculo
	var lienzo:MovieClip = this.createEmptyMovieClip("lienzo_mc"+this.getNextHighestDepth(), this.getNextHighestDepth());
	lienzo.lineStyle(1, 0x000000, 100);
	lienzo.moveTo(x0+radio, y0);
	for (var k:Number = (180/numPasos); k<361; k += 360/numPasos) {
		var proximoX:Number = x0+distancia_manejador*Math.cos(convertirRadianes(k));
		var proximoY:Number = y0+distancia_manejador*Math.sin(convertirRadianes(k));
		var proximo_controlX:Number = x0+radio*Math.cos(convertirRadianes(k+(180/numPasos)));
		var proximo_controlY:Number = y0+radio*Math.sin(convertirRadianes(k+(180/numPasos)));
		lienzo.curveTo(proximoX, proximoY, proximo_controlX, proximo_controlY);
	}
}
// creamos el círculo invocando la función
dibujarCirculo(275, 200, 100);

| | Más
flash 1flash 1flash 1flash 2flash 1flash 3flash 1flash 4