SVG has a radial gradient type but neither EMF nor EMF+ do. Instead EMF+ has a gradient type that can be generalized to a radial: set color1 at an interior point and color2 on a closed path around it, and the intermediate points' colors are determined by the position along the ray from the center to the bounding curve. When PowerPoint saves a radial gradient via "save picture as" to an EMF file it also creates an EMF+ description. In the cases tested those paths looks like this:
1213769.875000,856342.937500 < 1213769.875000,1358353.125000
806810.187500,1765312.875000 304800.000000,1765312.875000 < -197210.218750,1765312.875000
-604169.937500,1358353.125000 -604169.937500,856342.937500 < -604169.937500,354332.718750
-197210.218750,-52627.000000 304800.000000,-52627.000000 < 806810.187500,-52627.000000
1213769.875000,354332.718750 1213769.875000,856342.937500 <
The first point has type "start" and all the others have type "Bezier. The "<" indicates the points that are actually on the circle, and the points are grouped to emphasize how they work. These correspond to this drawing, with the point at 9:00 repeated once:
http://www.mathworks.com/matlabcentral/fx_files/6844/2/CircleApproxbyCubicBe...
If the goal is to import this gradient from the EMF+ this bezier must be recognized as a circle. That might also be worthwhile for other circles encoded as a similar path.
Now if the circles were only ever encoded with 13 points in this manner it would be pretty easy to spot one and convert it to a circle. But there might be 25 points in another circle representation, or something else. Does anyone know of a relatively straightforward test to apply to a curve like this (1 + 3N Bezier points) to see if it is a circle (within an error limit)?
For the gradients we also have the location of the center point, but that won't be true for general curves.
Thanks,
David Mathog mathog@...1176... Manager, Sequence Analysis Facility, Biology Division, Caltech