Eficientemente obteniendo posiciones de cuadrícula isométrica dentro de un cuadro delimitador

Tengo un sistema de cuadrícula isométrica cuyas coordenadas comienzan desde [0,0] en la esquina izquierda de la cuadrícula (La esquina que se muestra en la imagen de arriba) con x incrementando hacia la parte inferior de la imagen e y aumentando hacia la parte superior (entonces [0, altura] sería la esquina superior y [ancho, 0] sería la esquina inferior en forma de diamante con el ancho y la altura del tamaño de la cuadrícula, es decir, 200 x 200 cuadrados)

De todos modos, necesito ayuda para obtener una variedad de posiciones de cuadrícula isométrica que se encuentran dentro del cuadro azul que se muestra en la imagen. Menos de iterar sobre cada posición de pantalla x, y y obtener la posición de cuadrícula correspondiente (vea esta pregunta que planteé anteriormente sobre cómo convertir de una posición de pantalla a una posición de cuadrícula Obtener fila / columna en la cuadrícula isométrica.) no estoy seguro de cómo lograr esto de manera eficiente.

Hubo una pregunta que encontré anteriormente que es casi exactamente la mismaEnlace aquí. La respuesta fue representar la cuadrícula en una imagen con diferentes colores para cada cuadro de la cuadrícula y luego detectar qué colores estaban presentes debajo del cuadrado. ¡He implementado esta solución pero es bastante lenta! Casi estoy pensando que verificar la posición de la cuadrícula para cada píxel en el cuadro de selección sería más rápido. ¡Por qué, oh, por qué JavaScript es tan lento en el bucle!

Realmente necesito una solución matemática para este problema basada en mi sistema de coordenadas, pero parece que no puedo encontrar algo que funcione (y también maneja el cuadro de selección que sale de la cuadrícula)

Por favor, avíseme si necesita más información.

Edit: Desafortunadamente, las respuestas proporcionadas no han funcionado hasta ahora, ya que la selección es como tener un área de diamante seleccionada en una cuadrícula cuadrada, realmente no hay una esquina superior izquierda, inferior derecha para recorrer a menos que haya perdido el punto de las respuestas ? He optimizado el enfoque de renderizado, pero en una gran selección, todavía agrega una caída notable en los cuadros a medida que recorre todo el color de comprobación de píxeles y obtiene el cuadrado correspondiente

Respuestas a la pregunta(6)

Su respuesta a la pregunta