vykreslení bodů v kružnici

dobrý večer,

měl bych zajímavý a nevšední dotaz. Rád bych vykreslil určitý počet bodů v kružnici v určitém rastru. To znamená že do funkce zadám souřadnice středu a souřadnice prvního bodu, počet vykreslujícíh bodů a vykreslilo by se to.

Našel jsem Bresenhemův algoritmus na http://www.pcsvet.cz/art/article.php?id=820
který jsem přepsal do PHP, první příklad se mi nepodařil zprovoznit jelikož nechápu zapsání "int x = 0,i1=x1,i2=x2;".

Pokud je někdo dobrý matematik, nepomohl by mi s tím? předem moc děkuju
sinus a cosinus ti nestačí?
int x = 0,i1=x1,i2=x2; se da rozepsat jako int x = 0; int i1=x1; int i2=x2;
zbi:

tobě by stačilo?

Tonik:

ani tak, pokud x je nula tak mám nějakej klikyhák a je nasmyslný nastavit i1=x1 atd. když s nima pak ani nepoperuju a nemám je nastavený...
Samozřejmě. Pokud znáš "souřadnice středu a souřadnice prvního bodu, počet vykreslujícíh bodů", pak ti k vykreslení kružnice stačí sinus a cosinus (plus sčítání a odčítání).
ja to nezkoumal, ja ti jenom napsal, co ten radek znamena
no jestli tamto nefunguje, tak snad to na wikipedii by melo: http://en.wikipedia.org/wiki/Bresenham%27s_line_algorithm - kruznice v C je az nekde dole
x = A . cos uhel
y = A . sin uhel

http://www.volny.cz/peter.mlich/www.htm#mssub9
prostuduju děkuju
nedaří se mi to nějak vytvořit...

peta:

všiml jsem si že máš na stránce
http://www.volny.cz/peter.mlich/Pr/efekty/hodiny.htm
máš hezky vykreslený tečky...

snažil jsem se to nějak extrahovat, ale nepodařilo se mi to, byl by si tak hodnej a nenapsal by si mi to sem? jen zobrazení těch bodů, děkuju
<HTML>Kruh se pocita od dob Archimeda a jeho PI pomoci n-uhelniku..
z tech udelas trojuhelniky a pocitas..

Znas X,Y stredu
Znas polomer (=1strana trojuhelniku)
Znas 2 stranu (360°/ pocet trojuhelniku)
Kdyz znas 2 strany znas i preponu

Za pouziti goniomet. funkci pak snadno vytvoris vzorec.</HTML>
vyřešeno děkuju
naskýtá se další problém...týká se to javascriptu tak doufám že to enbude vadit, nechci zakládat další téma:

<head>
function obrazek()
{

a = 150;
for (i=0; i<60; i++)
{
x = a * Math.cos(i*(Math.PI/30));
y = a * Math.sin(i*(Math.PI/30));

document.getElementById("obrazek").style.top = (y+150);
document.getElementById("obrazek").style.left = (x+150);
}
}



function rotace()
{
setInterval("obrazek()", 600);
}

</head>
<body onload="rotace();">

<div>
<img src="obrazek.jpg" id="obrazek" style="position:absolute;">
</div>

obrázek se mi nepochybuje podle kružnice. zatím se mi to hýbne (asi po úsečce) a pak se zastaví a dál už se nehýbe. nevíte v čem by mohl být problém?
Vidíš, že ti stačí sinus a cosinus.

Zkus to takto:

<head>
<script>
var i=0;
function obrazek()
{

a = 150;
i = i + 1;

x = a * Math.cos(i*(Math.PI/30));
y = a * Math.sin(i*(Math.PI/30));

document.getElementById("obrazek").style.top = (y+150);
document.getElementById("obrazek").style.left = (x+150);


setTimeout('obrazek()', 100);
}

</script>
</head>
<body onload="obrazek();">

<div>
<img src="obrazek.jpg" id="obrazek" style="position:absolute;">
</div>
</body>
zbi:

ano, měl si pravdu, ono když pak člověk vidí výsledek, tak si připadá jak debil proč to tak neudělal...:-/

to tvoje funguje...děkuju
citron (renet.borec.cz)

function obrazek()
{

a = 150;
for (i=0; i<60; i++)
{
x = a * Math.cos(i*(Math.PI/30));
y = a * Math.sin(i*(Math.PI/30));

document.getElementById("obrazek").style.top = (y+150);
document.getElementById("obrazek").style.left = (x+150);
}
}


funkce, ktera vykresli kruznici.
Mno, ale jestli se to ma hybat, pak musis menit uhel, cili treba zvysovat "i", viz zbi (knizky.unas.cz)
"
a = 150;
i = i + 1;
"
Ty to delas tak, ze "i" zvysujes cyklem
"
for (i=0; i<60; i++)
"
coz je fajn, ale v dalsim casovem intervalu se provede totez od 0 do 60 a toto porad dokola. Jednodussi je zvysovat "i" do nekonecna.

document.getElementById("obrazek")
tohle bych dal asi do promenne. Nevim, jak se JS chova k opakovani stejne funkce, jestli pouzije vysledek z nejake pameni nebo jakym zpusobem provadi getElementById, ale myslim si, ze 2x zopakovany tento prikaz je jiste pomalejsi nez 1x.
var x = document.getElementById("obrazek")
x.style....
x.style....

(Math.PI/30)
to bych vyvedl jako globalni konstantu. Prepocitavat porad deleni je pomala operace

a * Math.cos
a tam by melo byt math.round zaokrouhlovani cisla, protoze v urcitem modu ti
left = "12.355789080";
nemusi fungovat
a mozna bych tam pridal jeste jednotku
left = "12.355789080";
math.round(x)+"px";
left = "12px";