Fixed big ellipses

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@246 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Adrien Destugues 2008-10-13 19:50:33 +00:00
parent 0bbed15383
commit b4673bf9de
2 changed files with 4 additions and 8 deletions

View File

@ -418,23 +418,18 @@ void Remplacer_une_couleur(byte Ancienne_couleur, byte Nouvelle_couleur)
void Ellipse_Calculer_limites(short Rayon_horizontal,short Rayon_vertical)
{
uint64_t Ellipse_Limite;
Ellipse_Rayon_horizontal_au_carre =
Rayon_horizontal * Rayon_horizontal;
Ellipse_Rayon_vertical_au_carre =
Rayon_vertical * Rayon_vertical;
Ellipse_Limite = Ellipse_Rayon_horizontal_au_carre * Ellipse_Rayon_vertical_au_carre;
Ellipse_Limite_Low = Ellipse_Limite & 0xFFFFFFFF;
Ellipse_Limite >>= 32;
Ellipse_Limite_High = Ellipse_Limite;
}
byte Pixel_dans_ellipse(void)
{
uint64_t ediesi = Ellipse_Curseur_X * Ellipse_Curseur_X * Ellipse_Rayon_vertical_au_carre +
Ellipse_Curseur_Y * Ellipse_Curseur_Y * Ellipse_Rayon_horizontal_au_carre;
if((ediesi >> 32) <= Ellipse_Limite_High &&
(ediesi & 0xFFFFFFFF) <= Ellipse_Limite_Low) return 255;
if((ediesi) <= Ellipse_Limite) return 255;
return 0;
}

View File

@ -493,8 +493,9 @@ GLOBAL long Ellipse_Curseur_X;
GLOBAL long Ellipse_Curseur_Y;
GLOBAL long Ellipse_Rayon_vertical_au_carre;
GLOBAL long Ellipse_Rayon_horizontal_au_carre;
GLOBAL long Ellipse_Limite_High;
GLOBAL long Ellipse_Limite_Low;
//GLOBAL long Ellipse_Limite_High;
//GLOBAL long Ellipse_Limite_Low;
GLOBAL uint64_t Ellipse_Limite;
GLOBAL long Cercle_Curseur_X;
GLOBAL long Cercle_Curseur_Y;
GLOBAL long Cercle_Limite;