Thanks Simon,
I've taken your code and used it in a target shape:
shape target
{
// Just for a comparison between ArcTo and BezierTo
SetPen(0,0,255,1);
// Create path so we can fill it
StartPath();
// Set initial point.
moveto(0,0);
// Move to the start of where the arc will be drawn
// ArcTo will always draw counterclockwise
arcto(
// Define a rect such that the center of the
// circle is the left edge of the element
-10,-5,10,5,
// Starting point is join of the ellipse and
// the center (0,50) and this point
0,5,
// End point is join of the ellipse and
// the center (0,50) and this point
0,-5
);
endpath();
FillAndStrokePath();
}
As you can see, I've reduced the sizing appropriately, and moved the "D" so that it straddles the line (that is, centred on y=0)
Now, the "D" extends into the target shape that the connector references.
OK, so, let me move it back 10 points on the x axis:
shape target
{
// Just for a comparison between ArcTo and BezierTo
SetPen(0,0,255,1);
// Create path so we can fill it
StartPath();
// Set initial point.
moveto(-10,0);
// Move to the start of where the arc will be drawn
// ArcTo will always draw counterclockwise
arcto(
// Define a rect such that the center of the
// circle is the left edge of the element
-20,-5,0,5,
// Starting point is join of the ellipse and
// the center (0,50) and this point
-10,5,
// End point is join of the ellipse and
// the center (0,50) and this point
-10,-5
);
endpath();
FillAndStrokePath();
}
Now, "All hell breaks loose!"
Have I misunderstood something or is this a bug?
Paolo