Rounded corner

BlitzMax Forums/BlitzMax Programming/Rounded corner

Raz(Posted 2008) [#1]
Hi Everyone.

Let's say I have an array of coordinates used to describe a polygon. I would like to be able to rewrite this array with more detail so I can add rounded corners. (for example, a corner could consist of 8 coordinates instead of the original 1 and so the array would go from holding 4 coords to 32). I would supply the radius of the rounding as well.

Is this called anything in particular so I can read up on it? Or even better, has anyone done something similar?

Ta!


tonyg(Posted 2008) [#2]
I would use a list for that. If you're set on using arrays then check Slicing to resize the array dynamically.


Raz(Posted 2008) [#3]
Cheers tony, the actual storage of the information wasn't the problem (well it isnt yet ;) It's more the working out of the coordinates. Like, I know the red coords, I know the radius of the circle and I would like it to work out the green coords.



So the function would be something like

function roundCorner(x1#, y1#, x2#, y2#, x3#, y3#, radius#, detail:int)

where detail specifies how many coords to return.


Raz(Posted 2008) [#4]
However, I think I should be able to do it once I work out the center of the circle coords and where the circle hits each line. I can work out the circle position by working out where two lines parallel to the original lines cross.



There's some code in the archives that tells you where a line intersects a circle as well, so I'll have a closer look at that and should be sorted :D


Raz(Posted 2008) [#5]
Huzzah!