Autor Zpráva
citron
Profil *
Dobrý večer,

mám takový matematický problém, se kterým si nevím rady, chtěl bych v rastru vykreslit kruh. Zkoušel jsem prohledat web, ale co jsem našel se mi nepodařilo zprovoznit. Určitě se najde někdo, kdo je v matice lepší jak já a pomůže mi. Pro vykreslení bychom veděli počáteční bod, poloměr (nebo-li první bod vykreslení) a úhel 6 stupňů...pokud je úhel 6 stupňů tak by výsledných mělo být 60 teček stejně jako u ručičkových hodin, ale nedokázu udělat cyklus s vypsáním bodů [x,y] proč určení tečky...byl bych moc rád za pomoc, děkuju
habendorf
Profil
Tak počkej - prvně mluvíš o kruhu, pak o 60 bodech na kružnici. Takže jak?

A proč to nenecháš na klientovi?
nightfish
Profil
citron
$polomer = 1.0;
for ($i = 0; $i <= 360; $i += 6) {
$x = cos(deg2rad($i)) * $polomer;
$y = sin(deg2rad($i)) * polomer;
}
habendorf
Profil
nightfish: Zbytečně složitý. Nebo PHP nezná PI?
koudi
Profil
habendorf
No já nevim, ty znáš jednodušší způsob?
habendorf
Profil
koudi: Připadá mi naprosto zbytečný dělat ty převody mezi stupni a radiány.
citron
Profil *
habendorf

omlouvám se s tím kruhem- kružnici, špatně jsem se vyjádřil

nightfish

dokonalý, měl jsem to podobně, ale neznal jsem funkci deg2rad takže jsem to nějak přepočítával přes pí a asi jsem tam měl někde chybu nevím ale tohle je parádní...jediný teď problém je, že když to třeba vykresluju pomocí imagesetpixel do čtverce tak mi to vykreslí čtvrt kruhu jelikož poloměr začíná u bodu [0,0], dá se to nějak posunout třeba do záčátečního bodu třeba [3,3]?
habendorf
Profil
citron: Děláš si srandu? :o) Ke každý proměnný prostě přičti 3, vždyť je to jen posunutí.
habendorf
Profil
Jinak celá kružnice má 2PI, takže šedesátina je PI/30. Takže přes PI:

i od 0 do 59 po 1

x = cos(i*PI/30) * poloměr
y = sin(i*PI/30) * poloměr
citron
Profil *
habendorf
nightfish

děkuju oběma:-)
citron
Profil *
jestli se nebudete zlobit tak bych měl ještě jednu otázečku...jak by to vypadalo pro elipsu?
habendorf
Profil
No tam už budeš muset víc počítat.

Základní rovnici elipsy máš (pro střed 0,0):

(x^2 / a^2) + (y^2 / b^2) = 1

a, b jsou délky poloos, čili jejich poměr ti určuje "splácnutost" elipsy - to jsou konstanty, ty si zvolíš dle libosti, když je dáš stejné, vyleze ti kružnice, když dáš jednu rovnou nule, vyleze ti úsečka (svislá nebo vodorovná)

Jiný tvar je ax^2 + by^2 +cx +dy + e = 0.
citron
Profil *
takže jestli se nemýlím, souřadnici X vypočítám:


(y*2)
1 - -------
(b*2)
x = ---------------------
(a*2)


a co znamená = 1?
habendorf
Profil
Lepší to bude počítat z parametrických rovnic.

x = a * cos(i*PI/30)
y = b * sin(i*PI/30)

zase pro i od 0 do <60
citron
Profil *
habendorf

paráda, všechno funguje, dokonalý...nevím jak poděkovat...děkuju moc
Toto téma je uzamčeno. Odpověď nelze zaslat.

0