Pa pođi od same jednačine kružnice iz analitičke geometrije,
Code:
sqr(r)=sqr(x-p)+sqr(y-q).
gdje je r poluprečnik, x i y koordinate tačke koja pripada kružnici, a p i q pomak centra kruga po x i y osi. Tebe zanima da li tačka u matrici pripada krugu. Ako pripada, rastojanje te tačke od centra će očigledno biti manje ili jednako poluprečniku, tj. ako tačka zadovoljava uslov da je
Code:
sqrt (sqr(x-p)+sqr(y-q))<=r;
Kod koji bi određivao koje tačke u matrici pripadaju krugu bi izgledao otprilike ovako:
Code:
for (int i=0; i<n; i++) //n-veličina matrice
for (int j=0; j<n; j++)
if (sqrt(sqr(i-p)+sqr(j-q))<=r)
printf("Tačka (%d,%d) pripada krugu sa centrom u (%d,%d) i poluprečnikom %d",i,j,p,q,r);
Za primjer sam uzeo da je matrica kvadratna, ali naravno to ne mora biti slučaj.
[Ovu poruku je menjao peromalosutra dana 10.12.2006. u 22:14 GMT+1]
ivan@ivan-desktop:~$ ./encrypt.run
*** stack smashing detected ***: ./encrypt.run terminated
Aborted (core dumped)