Avatar billede _just4fun_ Nybegynder
23. august 2005 - 14:46 Der er 8 kommentarer og
1 løsning

Skæringspunkt mellem 2 vektorer

Jeg har angivet 2 vektorer som hver har et punkt og en vinkel.
Hvordan finder jeg (på den mest optimale måde) skæringspunktet mellem de to vektorer??

noget ala:
public PointF intersectionpoint(PointF p1, float angle1, PointF p2, float angle2)
{
  PointF tmpPoint = new PointF();
  /*
    vektorkode til at finde intersectionpoint....
  */
  return tmpPoint;
}
Avatar billede _just4fun_ Nybegynder
23. august 2005 - 14:48 #1
hmm... egentlig er det uendelig lange linjer hvor der er angivet et punkt på linjen og en vinkel....
Avatar billede anadan Nybegynder
23. august 2005 - 16:00 #2
Avatar billede jmp.dk Nybegynder
23. august 2005 - 16:01 #3
Proev det her:
a1 = tan(angle1)
a2 = tan(angle2)
b1 = p1.y - ( p1.x * a1 )
b2 = p2.y - ( p2.x * a2 )
intersect.x = (b2 - b1) / ( a1 - a2 )
intersect.y = a1 * intersect.x + b1
Avatar billede _just4fun_ Nybegynder
23. august 2005 - 16:20 #4
jmp.dk -> Dejligt overskueligt, tak! smid et svar.
Avatar billede nielle Nybegynder
23. august 2005 - 16:25 #5
Formlen er ikke helt færdig - prøv f.eks. at sæt 90 grader ind. Men, mon ikke du skulle være i stand til at håndtere disse særtilfælde?
Avatar billede anadan Nybegynder
23. august 2005 - 16:25 #6
husk at Math.Tan(angle) tager vinklen i radianer
for at omregne:
degrees = radians *(180 / Math.PI)
Avatar billede _just4fun_ Nybegynder
23. august 2005 - 16:32 #7
Mine vinkler er i radianer, og jeg håndterer selv 0-90-180 osv, tak.
Ville bare se om der var en mere overskuelig måde at gøre det på end jeg selv gjorde det, og det var der.
Avatar billede jmp.dk Nybegynder
23. august 2005 - 18:57 #8
Ja det er rigtigt at der skal tages højde for særtilfælde ( 90 grader ) og angle 1 = angle2.
Avatar billede nielle Nybegynder
26. august 2005 - 08:54 #9
... og angle2 = 180 + angle1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester