Gå til innhold

C#: [Løst][Hjelp]Male gjennomsiktig sirkel


Anbefalte innlegg

Det jeg gjør er å male en sirkel på et bitmap med Graphics.FillEllipse(). Tingen er at fargen til denne sirkelen ikke nødvendigvis har en alpha på 255, hvilket resulterer i at fargen under sirkelen noen ganger skinner igjennom, noe jeg ikke vil. Spørsmålet er da hvordan jeg kan unngå dette. Jeg prøvde å lage en funksjon som skulle løse problemet:

void SetCircleColor(ref Bitmap bitmap, Rectangle circle, Color color)
	{
		int r = circle.Width / 2;
		int intervalStart,intervalEnd;
		for (int i = 0; i < circle.Width; i++)
		{
			intervalEnd =(int) Math.Sqrt((r * r) - ((i - r) * (i - r)))+r;// kvadratroten av hyp^2 - mot^2 = hos
			intervalStart =2*r-intervalEnd;
			for (int j = intervalStart; i < intervalEnd; i++)
				bitmap.SetPixel(circle.X+i,circle.Y+ j, color);
		}
	}

men denne virker desverre ikke (Noe er galt med posisjonskalkuleringen). Dette virker uansett ikke spesiellt effektivt, så jeg håper noen kan komme med et alternativ, eller eventuellt gi et inspill på hva som er galt med funksjonen. Takk på forhånd for all hjelp.

 

Edit: Det ser ut til at jeg har gjort en feilbedømmning av hva som er galt med programmet. Problemet kan ansees som løst.

Endret av Velena
Lenke til kommentar
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...