PowerPoint 2007에서 콜 아웃의 꼬리를 프로그래밍 방식으로 어떻게 배치 할 수 있습니까?
-
11-09-2019 - |
문제
PowerPoint 2007 파일의 DrawingMl을보고 있는데 이것이 콜 아웃 객체의 좌표 및 지오메트리에 대한 것입니다.
<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
그러나 기하학적 값은 두 지점 사이의 거리가 아닙니다.
이것을 계산하기위한 공식이 무엇인지 아는 사람이 있습니까?
해결책
나는 공식을 알아 낸 것 같아요 :
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
다른 팁
조정을 사용할 수있는 경우이를 수행하는 좋은 방법 일 수 있습니다. 테스트하지 않았습니다. 그러나, 당신이 요구하는 것을 이해한다면, 그것은 꼬리의 크기/위치가 조정되는 경우를 포함하여 화면의 특정 위치에서 WedgerectCallout의 꼬리 포인트의 x/y를 얻는 방법입니다. WedgerEctCallout의 미리 정의 된 크기가 있다고 가정합니다.
원하는 값은 presetshapedefinitions.xml에서 계산해야합니다 (ECMA 다운로드에서 찾으십시오). 원하는 값은 wedgerectCallout 요소에 있습니다.
<lnTo>
<pt x="xb" y="yb" />
</lnTo>
그래서 어떻게 계산합니까? x=xb
그리고 y=yb
? ECMA 문서로 이동하여 공식을 읽는 방법을보십시오.DrawingMl- 프레임 워크 참조 자료 -> 그리기 ML- 메인 -> 모양 정의 및 속성 -> GD (모양 가이드) 모양 가이드를 계산합니다 gdLst
(기본 또는 수정 된 조정의 값을 취합니다). 이 경우 XB 및 YB의 값을 얻으려면 모든/대부분의 가이드를 계산해야합니다.
문제가 발생하거나 더 많은 질문이 있으면 알려주십시오.
PresetshapedEfinitions.xml 파일에서 모양을 그리는 데 필요한 매개 변수와 공식을 정의합니다. <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>
모양을 그리는 방법을 말합니다.
나는 presetshapedefinitions.xml 파일의 모든 공식을 JavaScript로 변환하는 작은 프로그램을 썼습니다.
프로그램의 웹 사이트 페이지를 클릭하십시오 여기.
이 프로그램은 제가 제작하는 데 도움이되었습니다 pptxjs PPTX 파일을 HTML로 변환하는 플러그인.
도움이 되었기를 바랍니다.