Curso Básico de Programación

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

Html

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Dibujando2</title>
</head>
<body>
<h1>Dibujo: </h1>
	<input type="text" id=cajaTxt>
	<input type="button" value="Enviar" id="cajaBtn">
	<br><br>
	<canvas id="dib" width="300" height="300"></canvas>
	<p>----------------</p>
	<script src="dibujo.js"></script>
</body>
</html>

JS

ar text=document.getElementById('cajaTxt'); //POdemos manejar con estos metodos los inputs que importamos del html mediante su id
var button=document.getElementById('cajaBtn');

var d = document.getElementById("dib");		 //metodo del obj document que nos trae un elemento por id
var	lienzo = d.getContext("2d"); 			 //getContext permite obtener el area para dibujar, metodo del obj canvas d, se aplica el contexto 2d

//Vertice InfDer con while
/*while(lineasContador < lineasTotales){
	yIni=10*lineasContador;
	xFi=10*(lineasContador+1)
	dibujoLinea(lineaColor,0,yIni,xFi,300);
	lineasContador+=3; // si editamos el numero la separacion de las lineas cambia
	
}*/

dibujoBordes("black");
button.addEventListener("click",dibujoPorClick);

function dibujoPorClick(){
	creaDibujo("red",5); //cambiando el segundo parametro del 1 al 5 se grafican diferentes posiciones del algoritmo
}
function creaDibujo(color,esquinaCompleta){
	var lineasTotales = parseInt(text.value) ; 
	var lineasContador = 0;
	var lineaColor=color;

	var esquinaCompleta;
	var anchoCanvas=d.width;
	var espacioEntreLineas= anchoCanvas/lineasTotales;

	var xIni,yIni;
	var xFi,yFi;

	if (esquinaCompleta==1) {
		
		for (lineasContador; lineasContador < lineasTotales; lineasContador++) {
		xIni=0;
		yIni=espacioEntreLineas*lineasContador;
		xFi=espacioEntreLineas*(lineasContador+1);
		yFi=anchoCanvas;
		dibujoLinea(lineaColor,xIni,yIni,xFi,yFi);		
		} 

	}else if (esquinaCompleta==2) {
		
		for (lineasContador; lineasContador < lineasTotales; lineasContador++) {
		xIni=anchoCanvas-(lineasContador*espacioEntreLineas);
		yIni=0;
		xFi=0;
		yFi=espacioEntreLineas*(lineasContador);
		dibujoLinea(lineaColor,xIni,yIni,xFi,yFi);
		}

	} else if (esquinaCompleta==3) {
		for (lineasContador; lineasContador < lineasTotales; lineasContador++) {
	
		xIni=espacioEntreLineas*(lineasContador);
		yIni=0;
		xFi=anchoCanvas;
		yFi=espacioEntreLineas*(lineasContador+1);
		dibujoLinea(lineaColor,xIni,yIni,xFi,yFi);
		}
	}else if (esquinaCompleta==4) {

		for (lineasContador; lineasContador < lineasTotales; lineasContador++) {
	
		xIni=espacioEntreLineas*(lineasContador);
		yIni=anchoCanvas;
		xFi=anchoCanvas;
		yFi=anchoCanvas-(lineasContador*espacioEntreLineas);
		dibujoLinea(lineaColor,xIni,yIni,xFi,yFi);
		}		
	}else if (esquinaCompleta==5) {
		creaDibujo(color,1);
		lineasContador=0;
		creaDibujo(color,2);
		lineasContador=0;
		creaDibujo(color,3);
		lineasContador=0;
		creaDibujo(color,4);
	}
}
function dibujoBordes(lineaColor){
	dibujoLinea(lineaColor,0,0,300,0);
	dibujoLinea(lineaColor,0,0,0,300);
	dibujoLinea(lineaColor,0,300,300,300);
	dibujoLinea(lineaColor,300,0,300,300);
}
function dibujoLinea(color,xInicial,yInicial,xFinal,yFinal){

	lienzo.beginPath();					//inicio del trazo
	lienzo.strokeStyle = color;			//Estilo del trazo
	lienzo.moveTo(xInicial,yInicial);	//Pto de inicio
	lienzo.lineTo(xFinal,yFinal)		//Pto de fin
	lienzo.stroke();					//Trazo en si
	lienzo.closePath();					//Fin del trazo
}	

Curso Básico de Programación

Toma las primeras clases gratis

COMPARTE ESTE ARTÍCULO Y MUESTRA LO QUE APRENDISTE

0 Comentarios

para escribir tu comentario

Artículos relacionados