PowerPoint 2007에서 콜 아웃의 꼬리를 프로그래밍 방식으로 어떻게 배치 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1829009

문제

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로 변환하는 플러그인.
도움이 되었기를 바랍니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top