Hi there,
I am implementing a matrix of cells arranged in a polar fashion.
Cells are therefore indexed by rings and slices not by columns and rows, which would happen in a regular cartesian matrix.
Basically, that’s how I draw the path to generate each cell:
for (i = 0; i < slices; ++i) {
for (j = 0; j < rings; ++j) {
addCentredArc(centerX, centerY, radius, radius, 0.0, angleStart, angleEnd, TRUE);
addCentredArc(centerX, centerY, radius, radius, 0.0, angleEnd, angleStart, FALSE);
closeSubPath();
radius -= radiusDelta;
}
angleStart += angleDelta;
angleEnd += angleDelta;
}
[attachment=0]1_not_rounded.png[/attachment]
Now, I would like to give the user the ability to round the corners of each cell.
To do that I use:
if (cornerRadius > 0.0) {
createPathWithRoundedCorners(cornerRadius);
}
What I would like to get is something like this for ALL cell sizes:
[attachment=2]3_rounded_good.png[/attachment]
The problem I am experiencing is that very often for certain cell sizes not all corners are rounded equally:
[attachment=1]2_rounded_bad.png[/attachment]
When this happens - as you can see from the picture - only 2 of the 4 corners are not rendered correctly.
Could it be that there is a better way to specify/build my path, so that the renderer can deal with creating rounded corners correctly ?
Any thoughts ?
Thank you.
- Luigi