Obtenção eficiente de posições de grade isométricas dentro de uma caixa delimitadora

Tenho um sistema de grade isométrica cujas coordenadas começam em [0,0] no canto esquerdo da grade (o canto mostrado na imagem acima) com x incrementando na parte inferior da imagem e y incrementando na parte superior (então [0, altura] seria o canto superior e [largura, 0] seria o canto inferior em forma de diamante, com largura e altura sendo o tamanho da grade, isto é, 200 x 200 quadrados)

Sempre que preciso de ajuda é obter uma matriz de posições de grade isométricas que estão contidas na caixa azul mostrada na imagem. Com pouca iteração sobre todas as posições da tela x, y e a obtenção da posição da grade correspondente (consulte esta pergunta que fiz anteriormente sobre como converter de uma posição da tela para uma posição da grade em Obter linha / coluna na grade isométric) não tenho certeza de como conseguir isso com eficiênci

Houve uma pergunta que encontrei anteriormente que é quase exatamente a mesmaLink aqui. A resposta foi renderizar a grade em uma imagem com cores diferentes para cada quadrado da grade e, em seguida, detectar quais cores estavam presentes sob o quadrado. Eu implementei essa solução, mas ela é bastante lenta! Estou quase pensando que verificar a posição da grade para cada pixel na caixa de seleção seria mais rápido. Por que, por que o javascript é tão lento em loop!

Eu realmente preciso de uma solução matemática para esse problema com base no meu sistema de coordenadas, mas não consigo encontrar algo que funcione (e lida com a caixa de seleção saindo da grade também)

Por favor, deixe-me saber se você precisar de mais informações

Edit: Infelizmente, as respostas fornecidas não funcionaram até agora, como a seleção é como ter uma área selecionada em um quadrado em uma grade quadrada, realmente não há canto superior esquerdo, canto inferior direito para percorrer, a menos que eu tenha perdido o ponto das respostas ? Otimizei a abordagem de renderização, mas em uma grande seleção, ela ainda adiciona uma queda perceptível nos quadros, percorrendo toda a cor da verificação de pixels e obtendo o quadrado correspondente

questionAnswers(6)

yourAnswerToTheQuestion