Expand Function-VBForums

# Thread: Expand Function

1. ## Expand Function

Hi all,
I've recently had to do a lot of pixel processing and other types of processing that uses a 2d Cartesian plane. Many times I have had to get all the points directly adjacent to the one I'm working with. I usually just used to add and subtract the X and Y values, but when you need to do more than one level of adjacent points that method gets old really quickly.

So I made this function

vb.net Code:
`Function Expand(ByVal P As Point, ByVal Levels As Integer) As Point()        Dim Bound As Integer = (2 * Levels) + 1        Dim TotalPoints As Integer = Bound * Bound        Dim Points(TotalPoints - 1) As Point        Dim Origin As Point = New Point(P.X - Levels, P.Y - Levels)        For X = 0 To Bound - 1            For Y = 0 To Bound - 1                Points(Y * Bound + X) = New Point(Origin.X + X, Origin.Y + Y)            Next        Next        Return Points    End Function`
It's average time with 10 levels on my computer is 9 Microseconds (Microsecond is one millionth of a second) so it is pretty quick, although it takes roughly 30 times longer than an integer declaration.

I realise that not many people will understand my explanation since my engrish is not very awesome, So I made an image!

Say you are working with the red block. you need all the immediately adjacent block locations. then you would call this function with the location of the red block say (100;100) and then it will return a array of point that has the locations of all the green blocks.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•

Featured

Click Here to Expand Forum to Full Width

Survey posted by VBForums.