我正在查看PowerPoint 2007文件的DrawingML,这就是它对Callout对象的坐标和几何体的作用:
<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>
我遇到的问题是告诉它将尾巴放在幻灯片上的特定坐标上的公式。我试过这个来计算它,但它无法正常工作。
//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
但是,几何值不是两点之间的距离。
有人知道计算这个的公式是什么吗?
答案 0 :(得分:1)
我想我已经找到了公式:
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
答案 1 :(得分:1)
如果调整可用,这可能是一个很好的快速方法 - 我还没有测试过。但是,如果我理解你在问什么,那就是如何在屏幕上的特定位置获取wedgeRectCallout的尾点的x / y,包括调整尾部大小/位置的情况。我假设你有一个预定义的wedgeRectCallout大小。
您需要的值需要从presetShapeDefinitions.xml计算(使用Ecma下载查找)。你想要的值在wedgeRectCallout元素中:
<lnTo>
<pt x="xb" y="yb" />
</lnTo>
那你如何计算x=xb
和y=yb
?转到Ecma文档并查看如何阅读公式
DrawingML - 框架参考资料 - &gt;绘图ML - Main - &gt;形状定义和属性 - &gt; gd(形状指南)并计算gdLst
中的形状指南(采用默认值或修改后的调整值)。在这种情况下,您需要计算所有/大多数指南,以确保获得xb和yb的值。
如果您遇到任何问题或对此有更多疑问,请与我们联系。
答案 2 :(得分:0)
<avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
,<gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
, <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
,<cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
,<rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />
和<pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">
理解如何绘制形状所需的重要标记是:<gdLst>
和<pathLst>
。<gdLst>
包含形状的公式,<pathLst>
说明如何绘制形状。