Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Linje kollision.

Postades av 2007-02-22 21:25:56 - Mattias Frisk, i forum matte/fysik/beräkna, Tråden har 13 Kommentarer och lästs av 1718 personer

Hej.

Låt oss säga jag har två godtyckliga räta linjer i ett tre dimensionellt rum. Jag beskriver en linje med en "start" vektor (X,Y,Z) och en normaliserad riktnings vektor.

Hur ska jag nu gå tillväga om jag ska ta reda på om de kolliderar och var?. Jag läser just nu Matte D så jag skulle vara tacksam för ett svar utan för svåra matematiska termer.

Denna posten är en liten uppföljning på "Plan emot plan kollision", Jag har tänkt göra en algoritm som kollar om en triangel och en kub kolliderar (spelprojekt) och det visa sig att jag behövde mer hjälp på traven än bara plan emot plan kollision :-).


Svara

Sv: Linje kollision.

Postades av 2007-02-23 00:26:08 - Per Persson

Låt riktningsvektorerna vara n1 och n2.

Bilda vektorn n = n1 × n2,
där vektorprodukten u × v av u = (ux, uy, uz) och v = (vx, vy, vz) defineras genom
u × v = (uy vz - uz vy, uz vx - ux vz, ux vy - uy vx)

Om n = (0, 0, 0) är linjerna parallella och har antingen ingen eller ett oändligt antal gemensamma punkter.

Låt startvektorerna/-punkterna för linjerna vara p1 och p2.

Sätt c1 = p1 . n och c2 = p2 . n,
där skalärprodukten u . v = ux vx + uy vy + uz vz.

Om c1 = c2 skär linjerna varandra, annars inte. (Om jag har tänkt rätt. :-)


Svara

Sv:Linje kollision.

Postades av 2007-02-23 17:14:21 - Mattias Frisk

Hm, några grejer jag inte förstår.

Vad står punkterna för?, som exempel "c1 = p1 . n och c2 = p2 . n".
Menar du att n ska bli : n = (n1.y n2.z - n1.z n2.y, n1.z n2.x - n1.x n2.z, n1.x n2.y - n1.y n2.x)?
Och vad menas med skalärprodukten?


Svara

Sv: Linje kollision.

Postades av 2007-02-23 18:08:18 - Niklas Jansson

Skriv * istället för punkterna om du vill. Det är det som är grejen med vektor- och skalärprodukt.

Om du har två vektorer (a1 a2 ... an) och (b1 b2 ... bn), så finns det två olika sätt att definiera en produkt mellan dem, och båda "make sense" liksom. Därför kallar man båda för produkter. Ena sättet ger en vektor som svar. Det andra sättet ger en skalär (ett tal) som svar.

Vektorprodukten skriver man med ett kryss; u x v
Skalärprodukten skriver man med en punkt (egentligen ska den sitta i samma höjd som ett vanligt tecken, typ "-"); u . v

u x v = w , där w är en vektor av samma typ som u och v.
u . v = a, där a är ett tal.

Per har gett dig definitionerna på u x v och u . v.


Svara

Sv:Linje kollision.

Postades av 2007-02-23 19:05:10 - Mattias Frisk

Och för att få ut var dem skär är det p1 + n1 * c1 eller?


Svara

Sv: Linje kollision.

Postades av 2007-02-23 20:02:05 - Niklas Jansson

Är litet berusad, så det kan vara fel, men, ja det verkar som en rimligt svar. Men kolla först <b>om</b> de skär, så kan du kolla på var de skär sen.


Svara

Sv:Linje kollision.

Postades av 2007-02-24 03:01:11 - Per Persson

<b>Om du har två vektorer (a1 a2 ... an) och (b1 b2 ... bn), så finns det två olika sätt att definiera en produkt mellan dem, och båda "make sense" liksom. Därför kallar man båda för produkter. Ena sättet ger en vektor som svar. Det andra sättet ger en skalär (ett tal) som svar.</b>

Du har givit vektorerna godtyckliga dimensioner. Det är okej för skalärprodukten; den funkar bra i alla dimensioner. Vektorprodukten (av två vektorer) funkar däremot bara i 3 dimensioner. I n dimensioner behöver man ha n-1 vektorer i produkten för att få en ny vektor.


Svara

Sv: Linje kollision.

Postades av 2007-02-24 09:51:53 - Niklas Jansson

Korrekt, korrekt.
Jag var visst mer berusad, tidigare än jag trodde. Klart jag vet att vektorprodukten bara finns i 3.


Svara

Sv:Linje kollision.

Postades av 2007-02-28 20:48:54 - Mattias Frisk

Per, hur får jag fram var de kolliderar?


Svara

Sv: Linje kollision.

Postades av 2007-03-01 14:36:51 - Per Persson

Jag får skärningspunkten till
p1 - (((p2 - p1) × n) . n2) / |n|²) n1
alt
p2 - (((p2 - p1) × n) . n1) / |n|²) n2
med beteckningar som ovan och |n|² = n . n

Det är inte osannolikt att det har blivit teckenfel på den ena. Pröva.


Svara

Sv:Linje kollision.

Postades av 2007-03-01 19:50:33 - Mattias Frisk

Okej, Har testat det lite och det verkar fungera perfekt.

Tack för hjälpen!


Svara

Sv: Linje kollision.

Postades av 2007-03-01 23:42:27 - Per Persson

Båda?


Svara

Sv:Linje kollision.

Postades av 2007-03-02 14:21:27 - Mattias Frisk

Kör med den första, testade aldrig den andra.

Btw, p2 - (((p1 - p2) × n) . n1) / |n|²) n2, Så borde den andra vara väl?


Svara

Sv: Linje kollision.

Postades av 2007-03-02 20:55:11 - Per Persson

Precis, det är så jag tycker att den borde vara, även om jag fick den till den tidigare. Men som sagt gjorde jag nog ett teckenfel.


Svara

Nyligen

  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino
  • 04:14 Vad finns det för kratomalternativ
  • 14:16 Indian online casino
  • 14:15 Indian online casino
  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 864
27 962
271 767
631
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies