Autor | Zpráva | ||
---|---|---|---|
Darker Profil |
#1 · Zasláno: 30. 5. 2012, 17:06:50
Znám body A, B a C - jejich souřadnice. Jak spočítám libovolný bod ležící na ose úhlu ACB neshodný s C? Nepotřebuju nutně přímo kód, stačí nějaké nakopnutí.
Napadlo mě dlouhé řešení: Najít úsečku AC a její parametrickou rovnici. Totéž pro BC. Poté si vybrat libovolné t menší než 0 a dosadit do obou rovnicí. Získám body N (leží na AC) a M (na BC). Najdu střed úsečky MN. Problém je, že část s parametrikou rovnicí se mi zdá podezřele dlouhá. Když jsem se jí chystal použít naposledy, našel jsem nakonec toto: http://local.wasp.uwa.edu.au/~pbourke/geometry/lineline2d/. |
||
frantisek.nesveda Profil |
#2 · Zasláno: 30. 5. 2012, 23:39:32
Zkusím to napsat nějak v pseudokódu s komentáři:
//Spočtu si směrnici obou přímek CA a CB: S_CA := (Ax - Cx) / (Ay - Cy); S_CB := (Bx - Cx) / (By - Cy); // Tyto směrnice odpovídají tangentu úhlu, který přímka CA, resp. CB svírají s osou X. // Spočteme oba tyto úhly a vypočteme jejich průměr, to pak bude úhel osy. U_CA := Arctan(S_CA); U_CB := Arctan(S_CB); U_Osa := (U_CA + U_CB) / 2; //Z tohoto úhlu vypočteme zpět směrnici: S_Osa = Tan(U_Osa); //A pomocí té směrnice už jen bod D, který bude ležet na ose a bude mít x-ovou souřadnici o 1 větší, než původní C. Dx = Cx + 1; Dy = Cy + S_Osa; |
||
LuBOSS Profil * |
#3 · Zasláno: 30. 5. 2012, 23:45:37
Ak su vektory CA a CB rovnako velke tak ich vektorovy sucet CA + CB bude vektor ktory bude lezat na ose uhlu ACB. Ak nie su rovnako vekle nie je problem ich upravit aby rovnako velke boli. Napriklad sa daju normovat to znamena upravit na velkost 1. Vektor sa normuje tak ze sa podeli svojou velkostou a velkost vektora sa vypocita ako odmocnina z druhych mocnin suradnic vektoru.
|
||
frantisek.nesveda Profil |
#4 · Zasláno: 30. 5. 2012, 23:50:53
LuBOSS:
„Ak su vektory CA a CB rovnako velke tak ich vektorovy sucet CA + CB bude vektor ktory bude lezat na ose uhlu ACB. Ak nie su rovnako vekle nie je problem ich upravit aby rovnako velke boli. Napriklad sa daju normovat to znamena upravit na velkost 1. Vektor sa normuje tak ze sa podeli svojou velkostou a velkost vektora sa vypocita ako odmocnina z druhych mocnin suradnic vektoru.“ To je lepší řešení, nemusí se tam ošetřovat, že jsou vektory svislé apod., a bude fungovat určitě rychleji, než to moje původní. |
||
Časová prodleva: 12 let
|
0