Megoldhatatlan feladat: PHP dinamikus kép - körív
Sziasztok!
Az elmult 1 napban a fejemet a falba vertem, de nem tudtam megoldani egy problémámat.
Adott a kör(elipszis) középpontja (pl. 500, 500)
Adott a kör(elipszis) szélessége és magassága >> Aránya (2:1)
És a körív szöge (pl. 0,60)
Szal imagearc($kep,500,500,200,100,0,60,$szin);-nek szeretném megkeresni azt a pontját, amin végmeny a körívfelező, és a körön kívül van valamennyivel.
Igen, grafikon lesz, és a kövekező, nem, nemjó google-s vagy bármilyen grafikon, nekem saját kell...
■ Az elmult 1 napban a fejemet a falba vertem, de nem tudtam megoldani egy problémámat.
Adott a kör(elipszis) középpontja (pl. 500, 500)
Adott a kör(elipszis) szélessége és magassága >> Aránya (2:1)
És a körív szöge (pl. 0,60)
Szal imagearc($kep,500,500,200,100,0,60,$szin);-nek szeretném megkeresni azt a pontját, amin végmeny a körívfelező, és a körön kívül van valamennyivel.
Igen, grafikon lesz, és a kövekező, nem, nemjó google-s vagy bármilyen grafikon, nekem saját kell...
Hogy?
Ha jól értem: van egy ellipszis-szeleted, és kíváncsi vagy az ellipszis középpontjából indított szögfelező egyenes és az ellipszis-vonal metszéspontjának koordinátáira?
(ja, és máskor próbálj olyan témacmet adni, hogy mások, hasonló problémával megtalálhassák.)
:))
Vázlat:
http://linework.atw.hu/geom2.PNG
ez nem php...
Az elmúlt 24 óra
No, akkor folytatom a hajszát, ha szépen kérlek titeket, akkor még Google barátunkal körüljárjátok a webet? Hátha én csináltam/fogalmaztam valamit rosszul.
Koordináta-geo
http://hu.wikipedia.org/wiki/Ellipszis_(görbe)#Az_ellipszis_egyenletei
http://hu.wikipedia.org/wiki/Egyenes
Az ellipszis egyenleteiből az első lesz neked a hasznos, az egyenes egyenleteiből pedig az iránytangenses. Egy paraméteres egyenletet fogsz kapni, amiből kifejezeted az x-et és y-t, ezzel máris megvan a képleted.
(Arra figyej, hogy itt egy egyenessel dolgozol, tehát két metszéspontja lesz az ellipszissel. Ezekből a végén még ki kell választanod a jót, de erről majd később ;)
És mit mondott a matektanár?
Tekintsd az elipszised középpontját egy lokális koordináta rendszer középpontjának. Az elipszis egyenletével (wiki) számold ki az elipszis összes koordinátáját (koordináta pártokat), amik a koordináta rendszered 4. negyedébe esnek és töltsd bele egy tömbbe.
Számold ki a 45 fokban csökkenő egyenes összes koordinátáját (wiki) és töltsd tömbbe.
Mivel a számítógép roppant gyors, simán be is iterálhatod, de lehet hogy célravezetőbb az azonosokat keresni a két tömbben.
s_volenszki
Szerk:
A francba! A kolega gyorsabb volt, de úgy látom, Ő sokkal racionálisabb választ adott, míg én maradtam a józan paraszti észnél! :)
hogy?
Igen, valóban...
Ááá!
Bocsi hogy buta vagyok, de ez majd a jövő zenéje. Most egy kiselőadásban segítenél nekem?:) Légyszi o_O!
Még megengedhető
x ^ 2 / a ^ 2 + y ^ 2 / b ^ 2 = 1
Az egyenesed egyenlete (a szöget gammának hívom, mert az alfa és béta az ív két szöge):
tan(gamma) = y / x
ebből:
y = x * tan(gamma)
Ezt visszahelyettesítve az első képletbe:
x ^ 2 / a ^ 2 + (x * tan(gamma)) ^ 2 / b ^ 2 = 1
ezt rendezve:
x1 = sqrt(1 / (1 / a^2 + tan(gamma)^2 / b^2))
és a gyökvonás miatt van még egy gyök:
x2 = -x1
Ezt a két x-et visszahelyettesítve az y-os képletbe azt is megkapod, és ott vana két pontod. Még meg kell vizsgálnod, melyik esik abba a síknegyedbe, ahova a gammád, erre jobb megoldás nem jutott eszembe a forrásban láthatónál (előjelek vizsgálata).
Isten vagy!