ODL 129 TEAM B Coursework 1
Question 3
Outline an algorithm for detecting all instances of two or more rectilinier blocks in a particular 2D world being adjacent. Illustrate how your algorithm (method) might work for your particular 2D world.
Answer
Find Block A position (block centre)
(block  centre) = (a,b)
Find Block A extent (X,Y)
X = width
Find X minimum =  ((block centre) - (width/2)
Find X maximum = ((block centre) + (width/2)
Y  = height
Find Y minimum = ((block centre) - (height/2)
Find Y maximum =  ((block centre) + (height/2)
Repeat for Blocks B to F

Check if Blocks  adjacent front or rear

If Block A(X minimum, Y minimum) = Block B(X  minimum, Y maximum)
or if Block A(X minimum, Y maximum) = Block B(X minimum,  Y minimum)
or if Block A(X maximum, Y minimum) = Block B(X maximum, Y  maximum)
or if Block A(X maximum, Y maximum) = Block B(X maximum, Y  minimum)
Then return : Block A and Block B adjacent

Check if Blocks  adjacent left or right

If Block A(X minimum, Y minimum) = Block B(X  maximum, Y minimum)
or if Block A(X minimum, Y maximum) = Block B(X maximum,  Y maximum)
or if Block A(X maximum, Y minimum) = Block B(X minimum, Y  minimum)
or if Block A(X maximum, Y maximum) = Block B(X minimum, Y  maximum)
Then return : Block A and Block B adjacent

Check if Blocks  adjacent on diagonal

If Block A(X minimum, Y minimum) = Block B(X  maximum, Y maximum)
or if Block A(X minimum, Y maximum) = Block B(X maximum,  Y minimum)
or if Block A(X maximum, Y minimum) = Block B(X minimum, Y  maximum)
or if Block A(X maximum, Y maximum) = Block B(X minimum, Y  minimum)
Then return : Block A and Block B adjacent

Repeat for Block A  with Blocks C to F

Then start check for Block B, and repeat through to  Block F.
Question 1
Question 2
To top
Question 4
Question 5
Hosted by www.Geocities.ws

1