Autor | Zpráva | ||
---|---|---|---|
CDsk Profil * |
#1 · Zasláno: 22. 6. 2006, 14:50:44
mam dva body:
bod1.x bod1.y bod2.x bod2.y a potrebujem zistit uhol medzi nimi ,uz dva dni sa nad tym lamcujem ,pomozte. |
||
habendorf Profil |
#2 · Zasláno: 22. 6. 2006, 14:53:47
To je přece elementární matematika :o)
uhel = arctg [(y2-y1)/(x2-x1)] |
||
habendorf Profil |
#3 · Zasláno: 22. 6. 2006, 14:56:15
BTW, úhel mezi dvěma body je nesmysl, resp. je roven nule. Tohle je úhel mezi osou x a spojnicí těch dvou bodů.
|
||
CDsk Profil * |
#4 · Zasláno: 22. 6. 2006, 15:33:23
NEJDE!
BTW: ty si myslis ,ze keby to bolo takto jednoduche ,tak by som to nevedel! //myslel som ,ze po prepocitani radianou na uhly to pojde ,ale ani tak to nejde. //jj myslel som uhol osi k tymto dvom bodom ,ale myslim ,ze kazdy to urcite pochopil ,aj ked som tam nespomenul x os. |
||
habendorf Profil |
#5 · Zasláno: 22. 6. 2006, 15:37:02
Já nevím jak je to v AS, napsal jsem jen řešení z pohledu matematiky. Ale za tím si stojím. Samozřejmě je potřeba ošetřit dělení nulou.
|
||
Timy Profil |
#6 · Zasláno: 22. 6. 2006, 15:39:01 · Upravil/a: Timy
CDsk
Matematicky to habendorf napsal správně, ve flashi by pak ten zápis měl vypadat takhle: uhel=Math.atan((y2-y1)/(x2-x1)); |
||
CDsk Profil * |
#7 · Zasláno: 22. 6. 2006, 16:02:17
skus to!
,daj trace(Math.atan((y2-y1)/(x2-x1))); a skontroluj to ,... nefunguje to. //jasne ze v matematike je to spravne ,ale nejde to zial vo flashi. |
||
Steve Profil |
#8 · Zasláno: 22. 6. 2006, 16:05:47
samozrejme si nejdriv musis nadefinovat promenne x1, x2, y1 a y2, nejlepe jako Number, jinak to to logicky nic nevyplivne
|
||
pheros Profil * |
#9 · Zasláno: 22. 6. 2006, 16:14:25
CDsk-> ma pravdu nevychadza to ,alebo vychadza to len pre jeden/dva kvadrant-y ,ostatne nefunguju.
|
||
Hanz Profil |
#10 · Zasláno: 22. 6. 2006, 20:00:21
Já si nemůžu pomoct, ale mi to vychází přesně. A to pro všechny kvadranty. Napište někdo příklad hodnot pro které mu to nevychází.
|
||
Chamurappi Profil |
#11 · Zasláno: 22. 6. 2006, 20:34:22
Reaguji na habendorfa:
„Samozřejmě je potřeba ošetřit dělení nulou.“ Pracuje-li ActionScript s čísly stejně jako JavaScript, což je pravděpodobné, tak to potřeba není. Dělení nulou není v JS chyba. |
||
thingwath Profil |
#12 · Zasláno: 22. 6. 2006, 20:49:29
Jak to s NaN udělá ten arctg?
|
||
Chamurappi Profil |
#13 · Zasláno: 22. 6. 2006, 21:41:15
Reaguji na thingwathe:
Výsledek dělení nulou není NaN, ale Infinity. Takže Math.atan(1/0) vrátí přesně to, co se od něj očekává, půl π. |
||
thingwath Profil |
#14 · Zasláno: 22. 6. 2006, 21:48:37
A když to bude Math.atan(0/0)?
|
||
Chamurappi Profil |
#15 · Zasláno: 22. 6. 2006, 21:58:57
Reaguji na thingwathe:
Dobře, nevyjádřil jsem se přesně. Výsledkem dělení nulou je buď -Infinity, nebo NaN, nebo +Infinity. Math.atan(NaN) vrací NaN, což asi nepřekvapí. |
||
thingwath Profil |
#16 · Zasláno: 22. 6. 2006, 22:01:40
Nepřekvapí. Ale ošetřit by se to asi mělo, takže se nakonec něco ošetřit bude muset...
|
||
thingwath Profil |
#17 · Zasláno: 22. 6. 2006, 22:07:19
Staří Římani byli borci. Považte, svět kde nemůžete mít v bance na kontě nulu...
|
||
nemesix Profil |
#18 · Zasláno: 23. 6. 2006, 14:20:42
kedisy som robil daco podomne ,snad ti to pomoze:
function zisti_uhol(x1:Number,y1:Number,x2:Number,y2:Number) { if (y1<=y2){ return -((Math.atan((x1-x2)/(y1-y2)))*180)/Math.PI; } else { return 180-((Math.atan((x1-x2)/(y1-y2)))*180)/Math.PI; } } |
||
Anonymní Profil * |
#19 · Zasláno: 24. 6. 2006, 10:10:23
to predtym nefungovalo pri nulovom uhle ,toto funguje cele na 100%
function zisti_uhol(x1:Number,y1:Number,x2:Number,y2:Number) { var lenx = x1-x2; var leny = y1-y2; var radiany = Math.atan2(leny, lenx); var stupne = Math.floor(radiany/(Math.PI/180)); //var vzdialenost = Math.sqrt((lenx*lenx)+(lenyy*leny)); return stupne; } |
||
Časová prodleva: 18 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0