Bookmark and Share

Svårighetsgrad
Svårighetsgrad
Betyg (5 röster)
BetygBetygBetygBetygBetyg
 

Kollisioner med cirklar

Inledning

Rektanglar kan var bra i många fall men det är inte alltid en rektangulär form passar bäst. Vi ska nu se hur man kan använda cirklar för att bestämma kollisioner.

En cirkel har en mittposition och som bekant en radie som bestämmer storleken på cirkel. För att illustrera detta så kan vi ta en titt på bilden nedan. Grafiken i detta exempel har ritats i Photoshop och den tänkta cirkeln kring skeppet och meteoriten har ritats med grön toning.

bild

Dags att söka T4!


läs mer...

Ansökningen har börjat!
25 april till 15 maj!
ansök via skanegy.se

Är du intresserad av programmering, t.ex. spelutveckling, inbyggda system eller webbserverprogrammering?
Går du på Teknikprogrammet på gymnasiet och läser Programmering 1?
(eller har gått och är max 22 år)

Till höst startar jag ett nytt 4:e tekniskt år tillsammans med NTI i Lund för dig som vill bli Gymnasieingenjör. Målet är att du efter 4:e året kommer ut i arbete inom mjukvaruutveckling!

/MVH
Jonas Nilsson
skapare csharpskolan.se

Matematik

Visst låter det skrämmande? Faktum är att vi ska använda oss av klassisk matematik i form av Pythagoras sats. För att repetera detta så kan vi åter igen titta på en bild (nedan).

bild

Med denna formel kan vi alltså räkna ut olika sidor i en rätvinklig triangel givet att vi har minst två sidor. Vi ska snart se att vi alltid kan använda denna formel för att räkna ut avståndet mellan två punkter.

Praktik

Vi behöver några variabler som beskriver var på skärmen föremålen är samt vilken radie de har.

Eftersom "var på skärmen" måste vara centrum för föremålet så måste vi även ändra lite på uppritningen. Om vi drar ifrån halva föremålets höjd och bredd från X och Y-positionerna vid uppritning så kommer föremålen att centreras kring dess positioner.

Avståndet mellan två föremål får inte vara mindre än summan av deras radie. Tänk dig två olika bollar framför dig. När du för dem tillsammans mot varandra så befinner sig alltid centrumpositionerna med avståndet radie + radie ifrån varandra. Dags för nästa bild.

bild

Vi kan vid uppdateringsdelen i programmet nu räkna ut två sidor av en rätvinklig triangel. Skillnaden i X-positioner som vi kallar för xdiff och skillnader i Y-positioner som vi kallar för ydiff. Sedan är det bara att räkna ut avståndet (hypotenusan) med Pythagoras sats. Skulle avståndet vara mindre än summan av radierna så har vi alltså en kollision.

Notera att vi jämför värdena i kvadrat. Det är ingen större mening att beräkna roten ur, det skulle faktiskt bara krångla till det. Vill du ändå ha det exakta avståndet mellan två föremål så måste du ta roten ur t.ex genom:

bild

Ladda gärna hem exemplet nedan och läs igenom koden och prova!

Kommentarer

1 inlägg