Hola a todos. He leido al final del codigo del instructor que el codigo que se comparte puede optimizarse mas, me gustaria si alguien sabe o tiene un codigo opmitimizado o como puedo saber si mi codigo podria optimizarse mas. Gracias.
<meta charset="utf-8">
<canvas width="600" height="400"></canvas>
<script>
let pantalla=document.querySelector("canvas");
let pincel=pantalla.getContext("2d");
pincel.fillStyle="lightgrey";
pincel.fillRect(0,0,600,400);
let color=["red","green","blue"];
let inicio=0;
//el for me crea los cuadros de 3 colores para que no tenga que repetir muchas mas lineas para crearlos por separado.
for(let i=0;i<3;i++){
pincel.beginPath();
pincel.fillStyle = color[i];
if(inicio===0){
//pregunto si es el inicio, si lo es, grafico
pincel.fillRect(0, 0, 50, 50);
inicio=50;
}
else{
//si no es el inicio sumo 50 para graficar todos unidos y con la misma medida.
pincel.fillRect(inicio, 0, 50, 50);
inicio = inicio + 50;
}
}
//esta funcion se copio de dibujoConCursorSostenido---------------------------------------------------------
let puedoDibujar = false;
function dibujarCirculo(evento) {
if (puedoDibujar) {
let x = evento.pageX - pantalla.offsetLeft;
let y = evento.pageY - pantalla.offsetTop;
if (x < 151 && y < 51) {
console.log("No raye adentro");
}
else{
pincel.fillStyle = color[colorSeleccinado];
pincel.beginPath();
pincel.arc(x, y, 2, 0, 2 * 3.14);
pincel.fill();
}
}
}
function habilitarDibujar() {
puedoDibujar = true;
}
function deshabilitarDibujar() {
puedoDibujar = false;
}
function limpiarPantalla() {
pincel.clearRect(0, 0, 600, 400);//me limpia todo el canvas desde la posicon 0,0 hasta 600,400
pincel.fillStyle="lightgrey";
pincel.fillRect(0,0,600,400);
}
let colorSeleccinado;
let x;let y;
function elegirColor(evento){
//evaluo si el click en el canvas fue para cambiar el color o para dibujar
//capturo coordenadas del click=
x=evento.pageX-pantalla.offsetLeft;
y=evento.pageY-pantalla.offsetTop;
if(x<=50&&y<=50){
colorSeleccinado=0;
console.log("hizo click en el cuadro rojo.");
}
if(x>51&&x<=100&&y<=50){
colorSeleccinado = 1;
console.log("hizo click en el cuadro verde.")
}
if (x > 101 && x <= 150 && y <= 50) {
colorSeleccinado = 2;
console.log("hizo click en el cuadro azul.")
}
}
pantalla.onmousemove = dibujarCirculo;
pantalla.onmousedown = habilitarDibujar;//click
pantalla.onmouseup = deshabilitarDibujar;//levantar clic
pantalla.onclick=elegirColor;
</script>