vykreslení bodů v kružnici

15 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. 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
  2. sinus a cosinus ti nestačí?
  3. int x = 0,i1=x1,i2=x2; se da rozepsat jako int x = 0; int i1=x1; int i2=x2;
  4. 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ý...
  5. 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í).
  6. 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
  7. x = A . cos uhel y = A . sin uhel http://www.volny.cz/peter.mlich/www.htm#mssub9
  8. prostuduju děkuju
  9. 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
  10. <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>
  11. vyřešeno děkuju
  12. 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?
  13. 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>
  14. 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
  15. 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";

← Zpět na všechna témata