musze stworzyć okrągłe menu w tym problem ze nie zabardzo moge stworzyc koło :(
wymyśliłem algorytm ale to raczej przypomina okragły romb :D facet mi powiedziałze sa gotowe unkcje ( NIE GRAFICZNE!! TJ, BEZPOŚREDNI ZAPIS DO PAMIĘCI za pomoca mem $a000:0000)
0
0
dowolny algorytm rysowania okręgu (z definicji koła/okręgu, albo np. midpoint).
0
a możesz podac algorytm gotowy algorytm ??
0
!!tylko chciałem dodac ze pisze w pascalu nie w c
0
Spróbuj przetłumaczyć algorytm z C na pascal'a, masz przecież podany kod w linku, który podał Ci @Azarien:
void rasterCircle(int x0, int y0, int radius)
{
int f = 1 - radius;
int ddF_x = 1;
int ddF_y = -2 * radius;
int x = 0;
int y = radius;
setPixel(x0, y0 + radius);
setPixel(x0, y0 - radius);
setPixel(x0 + radius, y0);
setPixel(x0 - radius, y0);
while(x < y)
{
// ddF_x == 2 * x + 1;
// ddF_y == -2 * y;
// f == x*x + y*y - radius*radius + 2*x - y + 1;
if(f >= 0)
{
y--;
ddF_y += 2;
f += ddF_y;
}
x++;
ddF_x += 2;
f += ddF_x;
setPixel(x0 + x, y0 + y);
setPixel(x0 - x, y0 + y);
setPixel(x0 + x, y0 - y);
setPixel(x0 - x, y0 - y);
setPixel(x0 + y, y0 + x);
setPixel(x0 - y, y0 + x);
setPixel(x0 + y, y0 - x);
setPixel(x0 - y, y0 - x);
}
}
0
Procedure Circle (X1, Y1, R: Word; Kolor: Byte);
{ Rysuje okrag o srodku (X1,Y1) i promieniu R }
Var
kat: Real;
X,Y: Integer;
Begin
kat := 0; { Zaczynamy kat od 0 }
Repeat
X := round(RCOS (kat));
Y := round(RSIN (kat));
putpixel_3 (x+x1,y+y1,Kolor);
kat := kat+0.005; { Dokladnosc - im mniejszy przyrost, }
{ tym dokladniejszy okrag. }
Until (kat>6.4); { az do 2*pi = okolo 6.4 }
End; { Circle }