views:

139

answers:

1

I'm looking at the DrawingML of a PowerPoint 2007 file and this is what it has for the Callout object's coordinates and geometry:

<p:spPr>
    <a:xfrm>
        <a:off x="2819400" y="5181600"/> // X,Y Position of Callout Box
        <a:ext cx="609600" cy="457200"/> // Width,Height of Callout Box
    </a:xfrm>
    <a:prstGeom prst="wedgeRectCallout">
        <a:avLst>
            <a:gd name="adj1" fmla="val 257853"/> // X Position Of Tail
            <a:gd name="adj2" fmla="val -532360"/> // Y Position of Tail
        </a:avLst>
    </a:prstGeom>
    <a:solidFill>
        <a:schemeClr val="accent1">
            <a:alpha val="50000"/>
        </a:schemeClr>
    </a:solidFill>
</p:spPr>

What I'm having trouble with is the formula for telling it to place the tail at a particular coordinate on the slide. I've tried this to calculate it, but it does not work correctly.

//This gives me the distance between the Coordinate and the Center of the Callout.
DistanceX = Coordinate.X - (Callout.X + Callout.X_Ext)/2
DistanceY = Coordinate.Y - (Callout.Y + Callout.Y_Ext)/2

But, the geometric value is not the distance between the two points.

Anybody know what the formula is for calculating this?

A: 

I think I've figured out the formula:

DistanceX = Coordinate.X - (Callout.X + (Callout.X_Ext/2))
DistanceY = Coordinate.Y - (Callout.Y + (Callout.Y_Ext/2))

TailX = (DistanceX/Callout.X_Ext) * 100000
TailY = (DistanceY/Callout.Y_Ext) * 100000
Rorschach