Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Solucionado (ver solución)
Solucionado
(ver solución)
5
respuestas

Diseño con el mouse.

Termine el ejercicio "Diseñando con el mouse" esta es mi solucion (la muestro antes de ver la del instructor):

<canvas width="600" height="400"></canvas>

<script>
  var pantalla = document.querySelector("canvas");
  var pincel = pantalla.getContext("2d");
  var colores = ["red" , "green" , "blue"];
  var indice = 0;

  pincel.fillStyle = "grey";
  pincel.fillRect(0, 0, 600, 400);

  var puedoDibujar = false;

  function dibujarCuadrado(x, y, color) {
    let pantalla = document.querySelector("canvas"); //selecciona le etiqueta "canvas"
    let pincel = pantalla.getContext("2d"); //pasa el contenido de la pantallatoda nuestra variable pantalla, el contenido de esa pantalla en dos dimensiones, largo o ancho mejor dicho, y alto o largo.

    pincel.fillStyle = color;    

    pincel.fillRect(x, y, 50, 50);
    pincel.strokeRect(x, y, 50, 50);
  }

  for (let x = 0; x < 50; x += 50) {
    dibujarCuadrado(0, x, "red");
    dibujarCuadrado(50, x, "green");
    dibujarCuadrado(100, x, "blue");
  }

  function dibujarCirculo(evento) {
    if (puedoDibujar) {
      var x = evento.pageX - pantalla.offsetLeft;
      var y = evento.pageY - pantalla.offsetTop;
      pincel.fillStyle = colores[indice];
      pincel.beginPath();
      pincel.arc(x, y, 5, 0, 2 * 3.14);
      pincel.fill();
      console.log(x + ", " + y)
    }
  }

  pantalla.onmousemove = dibujarCirculo;

  function habilitarDibujar() {
    puedoDibujar = true;
  }

  function deshabilitarDibujar() {
    puedoDibujar = false;
  }

  pantalla.onmousedown = habilitarDibujar;

  pantalla.onmouseup = deshabilitarDibujar;

  function tocarColor(evento){
    var x = evento.pageX - pantalla.offsetLeft;
    var y = evento.pageY - pantalla.offsetTop;

    if(x < 50 && x > 0 && y < 50 && y > 0){
        indice = 0;
    } else if(x > 50 && x < 100 && y < 50 && y > 0){
        indice = 1;
    } else if(x > 100 && x < 150 && y < 50 && y > 0){
        indice = 2;
    }

    //alert(x + "," + y); //Ver la posicion de la X y la Y
  }

  pantalla.onclick = tocarColor;


</script>

Use la logica de desafios anteriores para resolverlos, con un array de colores y un indice, luego use las variables x e y para obtener la posicion de la pantalla si el usuario da click cuando esta en el rango deseado el valor de indice cambiara y le permitira al usuario dibujar con otro color.

Resultado en imagen:

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

Con esto finalizaria el curso de Logica de Programacion 3, nos vemos en el curso de HTML Y CSS. Exitos!!!

5 respuestas

Gracias :D.

Tu código me ayudo a inspirar y guiar un poco el mío xd

solución!

Buenismo, me alegro que te haya ayudado, después vi el que hizo el instructor y me pareció que su solución era mucho más compleja.

Siii, me agobio verla xD

Así quedo el mío xd

<canvas width="600" height="400"></canvas>

<script>
    let pantalla = document.querySelector('canvas');
    let pincel = pantalla.getContext('2d');
    let colorInicial = "blue";
    let colores = ["red","green","blue"];
    let puedoDibujar = false;
    let i = 0
    pincel.fillStyle = 'lightgrey';
    pincel.fillRect(0, 0, 600, 400);

    function paletaColores(x){
        for(let i=0;i<colores.length;i++){
            let sumaX = 50*i;
            pincel.fillStyle = colores[i];
            pincel.fillRect(x+sumaX,0,50,50);}}

    function dibujarCirculo(evento) {
        if(puedoDibujar) {
            let x = evento.pageX - pantalla.offsetLeft;
            let y = evento.pageY - pantalla.offsetTop;
            pincel.fillStyle = colores [i];
            pincel.beginPath();
            pincel.arc(x, y, 5, 0, 2 * 3.14);
            pincel.fill();
            console.log(x+","+y)}}
            pantalla.onmousemove = dibujarCirculo;

            function habilitarDibujar() {
                    puedoDibujar = true;}

            function deshabilitarDibujar() {    
                    puedoDibujar = false;}

    function cambioColor(evento) {
        x = evento.pageX - pantalla.offsetLeft;
        y = evento.pageY - pantalla.offsetTop;
        if(x>0 && x<50){
            i = 0;} 
        if (x>50 && x<100){
            i = 1;}
        if (x>100 && x<150){
            i = 2;}}

    pantalla.onmousedown = habilitarDibujar;
    pantalla.onmouseup = deshabilitarDibujar;
    paletaColores(0);
    pantalla.onclick = cambioColor;
</script>

Buenísimo