Springen naar inhoud

[Wiskunde] Navigeren om een kubus


  • Log in om te kunnen reageren

#1

shengeveld

    shengeveld


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 01 april 2006 - 08:17

Ik zou graag wat hulp hebben met het volgende probleem:

Ben op het moment bezig me om een kubus te navigeren in een 3 dimensionele ruimte.
Ik heb een beginpunt s, en een eindpunt g. Ik trek een lijn van punt s naar g. Op het moment dat ik de kubus doorsnijd, wil ik weten op welk punt ik de kubus snij, vanaf dat punt wil ik naar het dichtstbijzijnde punt op de dichtstbijzijnde ribbe. Vanaf dit punt weer een lijn trekken naar punt g.

Ik heb een aantal problemen. Als eerste advies hoe de kubus te beschrijven. Moet ik zes vlakken beschrijven?
Hoe bepaal ik het snijpunt, en het dichtstbijzijnde punt op de dichtstbijzijnde ribbe?

Vriendelijke groeten, Sytse

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

*_gast_PeterPan_*

  • Gast

Geplaatst op 01 april 2006 - 09:19

Is het de bedoeling dat je daar een computerprogramma voor wilt schrijven?
Ik kan alleen zeggen hoe ik het zou programmeren.
Neem aan dat de lengte van de ribbe van de kubus 2r is.
De kubus wordt begrensd door de vlakken x=r, x=-r,y=r,y=-r,z=r,z=-r.
Simpel dus. Het snijden van een lijn met deze kubus levert heel simpel een snijpunt. De kortste afstand tot een ribbe is ook simpel te bepalen.
Nu laat ik niet de kubus in de ruimte ronddolen maar de punten s=s(t) en g=g(t) en houdt de afstand s(t)g(t) constant.
Als s en g verplaatst zijn naar s' en g', dan moet je even een matrix uitrekenen (in het algemene geval natuurlijk), die s' en g' weer terugplaatsen naar s en g. Gebruik deze matrix om ook alle hoekpunten en de snijpunten terug te werpen naar de situatie met onveranderlijke s en g.
You snap? :roll:

#3

shengeveld

    shengeveld


  • 0 - 25 berichten
  • 3 berichten
  • Gebruiker

Geplaatst op 01 april 2006 - 10:00

Alvast bedankt voor de reactie :roll:

Is het de bedoeling dat je daar een computerprogramma voor wilt schrijven?
Ik kan alleen zeggen hoe ik het zou programmeren.


Het is inderdaad voor een computerprogramma.

Het snijden van een lijn met deze kubus levert heel simpel een snijpunt. De kortste afstand tot een ribbe is ook simpel te bepalen.


Hier zit mijn eerste probleem. Hoe bepaal ik in de eerste plaats of, en waar de lijn de kubus snijdt?

Groeten

#4

*_gast_PeterPan_*

  • Gast

Geplaatst op 01 april 2006 - 10:20

Hier zit mijn eerste probleem. Hoe bepaal ik in de eerste plaats of, en waar de lijn de kubus snijdt?

De lijn is bijvoorbeeld
LaTeX

Dan is x = 2LaTeX , y = 3LaTeX en z = -LaTeX .
Snijden met x=r, x=-r, y=r, y=-r, z=r, z=-r levert de volgende snijpunten op met de kubus:

(r,3r/2,-r/2), (-r,-3r/2,r/2), (2r/3,r,-r/3), (-2r/3,-r,2r/3), (-2r,-3r,r) en (2r,3r,-r).

Alleen (2r/3,r,-r/3) en (-2r/3,-r,2r/3) voldoen, want de coordinaten moeten tussen -r en r liggen.

#5

Rogier

    Rogier


  • >5k berichten
  • 5679 berichten
  • VIP

Geplaatst op 01 april 2006 - 10:44

Hier zit mijn eerste probleem. Hoe bepaal ik in de eerste plaats of, en waar de lijn de kubus snijdt?
Groeten

Die lijn van s naar g kun je uitdrukken als s+t(g-s) met t=0..1
Voor het gemak schrijf ik even d=g-s
Vervolgens los je deze 6 vergelijkingen op naar t:
LaTeX
LaTeX
....
En idem voor y en z. Je krijgt dan maximaal 6 waarden voor t (het zou kunnen dat sommige van die 6 vergelijkingen niet oplosbaar zijn, als de lijn loodrecht op 1 van de vlakken staat).

Oplossingen waarbij t<0 of t>1 gooi je weg (daar ligt een eventueel snijpunt namelijk voor s of voorbij g).

Vervolgens bepaal je voor iedere t die nog over is, het bijbehorende punt op de lijn s-g:
LaTeX
Nu kijk je voor iedere p of dat punt op of buiten de kubus ligt: als px<-r of px>r of py<-r of.. enz (6 criteria), dan ligt het punt erbuiten en gooi je hem weg.

Als s en g zelf allebei buiten de kubus lagen heb je nu nog 2 oplossingen over, het punt p wat bij de kleinste t hoort is waar de lijn s-g de kubus in gaat, het tweede punt is waar hij weer naar buiten komt:
Geplaatste afbeelding

(edit) nevermind, PeterPan was me voor :roll: Naja hopelijk maakt deze uitleg het een beetje visueel.
In theory, there's no difference between theory and practice. In practice, there is.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures