Programmering.
Hur tar jag riktningen från en punkt till en annan? Är det tan eller?
Bara älskar första posten i den här tråden, haha.
Citat från SUPSON
Citat från Vampyr
Hur tar jag riktningen från en punkt till en annan? Är det tan eller?
Ganska säker på att det är cosine för x och sine för y, dock inte 100%.
Nej nej nej de har jag koll på, det är andra funktioner
Är ute efter typ motsatsen
Om du har två punkter och skall beräkna riktningen mellan A och B (oavsett dimension) blir beräkningen
Riktning = B-A
För att få en vettig riktningsvektor med längden ett bör du normalisera den (dela med dess längd).
Så om du har punkten A(10,40) och punkten B(-20,50) blir riktningsvektorn som tittar på B från A:
V.x = B.x - A.x = -30
V.y = B.y - A.y = 10
Längden beräknar du med en vanlig pytagoras sats där summan av kvadraten på kateterna är lika med hypotenusen i kvadrat.
a^2 + b^2 = c^2.
Delar du vektorelementen med längden får du ut din normaliserade vektor :)
typedef struct {
float x,y;
} v2_t;
float normalize(v2_t* v)
{
//beräkna recipprocten av att dela med längden.
float rec_l = 1.0/sqrt((v->x*v->x)+(v->y*v->y));
v->x *= rec_l;
v->y *= rec_l;
//lite ooptimerat men ja. get the point.
return 1.0/rec_l;
}
int main(int argc, char **argv)
{
v2_t a;
a.x = 1.0;
a.y = 1.0;
printf("length: %f\n",normalize(&a));
printf("x:%f y:%f\n",a.x,a.y);
return 0;
}
där har du lite kod för normalisering.
går att skriva det betydligt snabbare lite sseassembler men ja, vill någon ha det så säg till :)
Haha oh you. :) Normalisera en vektor goddamnit!
Alltså jag vill ha svaret i grader! :)
Citat från SUPSON
Citat från Vampyr
Alltså jag vill ha svaret i grader! :)
använd dig av arctan då.
kthx! :D
Du måste vara inloggad för att skriva i forumet