witam,
Bystrzacha napisał(a):
...w funkcji mogą być zawarty tylko takie stałe jak położenie środka okręgu X I Y oraz jego promień R. ...
ponieważ to jest najprostszy sposób na usytuowanie okręgu.
Należy się zastanowić:
na jakich współrzędnych na osiach X i Y należy narysować punkty, by powstał zamierzony okrąg.
musimy wiedzieć gdzie jest jego środek, i jaki jest promień okręgu.
dodatkowo można oczekiwać grubości linii która będzie reprezentować nasz okrąg, czy musi być wypełniony(kolo)... .
Jeżeli środek będzie w pozycji "0,0" to wykresem na ekranie będzie wycinek-ćwiartka okręgu.
Program musi wiedzieć gdzie np. zacząć rysować i z jaką rozdzielczością.
Poza tym są jeszcze metody na rysowanie pikseli sąsiednich, nie wynikających bezpośrednio z punktów okręgu,
tylko pośrednio z sąsiednich dla uzyskania lepszego odwzorowania optycznego wrażenia okręgu.
Tu trzeba się wczytać i zapoznać z koncepcjami autorów takich rozwiązań i sposobem ich realizacji.
W moim przypadku, jak do tej pory do celów testowych i małych projektów wystarcza podstawowa wersja bez cieni oczywiście z zaokrągleniem wyniku współrzędnych Y na poziomie '+0,5'. chodzi o t żeby program czytając wynik np. '10,8' nie wstawił piksela w pozycji '10' tylko w pozycji '11'.
Kolejną ważną z punktu widzenia prędkości rysowania(wyliczania) okręgu jest jego symetryczność.
Jeżeli wyliczysz punkt odsunięty w prawo w osi X i w górę w osi Y od środka, to już masz wyliczone odsunięcie od środka pozostałych czterech punktów w pozostałych kierunkach, a nawet ośmiu.
Kiedyś próbowałem sam pisać taki kod

, ale po co wymyślać koło od nowa.

Są gotowe rozwiązania, poszukaj pod hasłem np. "algorytmy Bresenhama" albo zerknij na podesłany przez kolegę link.