#include "quadrado.H"
#include "util.H"
/* Desenha o quadrado no quadro q, compensando píxeis com relação
largura/altura quadro.aspecto(): */
void Quadrado::desenhaEm(Quadro& quadro) const
{
// Posição do quadrado:
int l = posicao().linha();
int c = posicao().coluna();
int altura = arredonda<int>(lado() * quadro.aspecto());
// Desenho dos lados horizontais:
for(int i = 0; i != lado() - 1; ++i) {
quadro.pinta(Posicao(l, c + i));
// Altura compensada pelo rácio largura/altura dos píxeis:
quadro.pinta(Posicao(l + altura - 1, c + 1 + i));
}
// Desenho dos lados verticais (altura compensada pelo rácio
// largura/altura dos píxeis):
for(int i = 0; i != altura - 1; ++i) {
quadro.pinta(Posicao(l + 1 + i, c));
quadro.pinta(Posicao(l + i, c + lado() - 1));
}
}