SlideShare a Scribd company logo
1 of 36
Shape Transforms
DrawingML
Where are we?
spTree
nvGrpSpPr grpSpPr sp
nvSpPr spPr
style txBody
xfrm geo
fillProperties lineProperties
effectProperties scene3D
sp3D bwMode
Transform “Variables”
• Shapes
– Offset X
– Offset Y
– Extents X
– Extents Y
• Group Shapes
– Offset X
– Offset Y
– Extents X
– Extents Y
– Child Offset X
– Child Offset Y
– Child Extents X
– Child Extents Y
Coordinate Space
( 0,0 )
X-Axis
Y-Axis
2D Units measures in EMUs ( 914400 EMUs per inch )
Shape Transform “Variables”
Extent X
Offset X
Extent Y
Offset Y
( 0,0 )
Group Transform “Variables”
( 0,0 )
Offset X == Ch Offset X
Offset Y == Ch Offset Y
Extent Y == Ch Extent Y
Extent X == Ch Extent X
Lesson #1
• When a group is created the group’s offset
and extents are equal to the children’s
offset and extents.
Offset_X == ChOffset_X
Offset_Y == ChOffset_Y
Extent_X == Extent_X
Extent_Y == Extent_Y
Lesson #2
• Effect Bounds do not relate to extent
variables for shapes or groups
( 0,0 )
Offset X == Ch Offset X
Offset Y == Ch Offset Y
Extent Y == Ch Extent Y
Extent X == Ch Extent X
Case 1
Scenario: A slide contains two shapes, a block arrow and a triangle.
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset
 Extent
 Offset
 Extent
Child Shapes
BeforeAfter
Case 2
Scenario: Given Case 1, move the block arrow to the right
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 2673 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Case 3
Scenario: Given Case 1, resize block arrow to 150% ( towards the BR of the slide )
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 1467 726
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Case 4
Scenario: Given Case 1, rotate the block arrow 90 degrees, clockwise
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
 Rotation = 5,400,000
Lesson #3
• Rotation does not change the offset or
extents of the target shape
– But it might change the offset or extents of a
containing shape
– “Resolved” at rendering time
Case 5
Scenario: Given Case 1, group both shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
Explanation
First determine the offset for the group:
Offset_X = Min (  Offset_X,  Offset_X )
= Min ( 914, 3657 )
= 914
Offset_Y = Min (  Offset_Y,  Offset_Y )
= Min ( 1524, 3449 )
= 1524
Next determine the extent of the group:
Extent_X = Max ( (  Offset_X +  Extent_X - Offset_X ) ,
(  Offset_X +  Extent_X - Offset_X ) )
= Max ( 978, 3803 )
= 3803
Extent_Y = Max ( (  Offset_Y +  Extent_Y - Offset_Y ) ,
(  Offset_Y +  Extent_Y - Offset_Y ) )
= Max ( 484, 2839 )
= 2839
And based on Lesson #1, the children values are the same …
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
Descrepancies between the table and details are due to rounding errors
Case 6
Scenario: Given Case 5, move the group to the right
X Y
Offset 4197 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
Explanation
Because the entire group was moved to the right ( along the X-axis ) the Offset_X
value of the group was the only variable that changed.
X Y
Offset 4197 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
Descrepancies between the table and details are due to rounding errors
Case 7
Scenario: Given Case 5, resize the group to 50% ( towards the TL of the slide )
X Y
Offset 914 1524
Extent 1919 1413
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
Explanation
Because we have scaled the group down by approximately 50% and we have not
moved it, we are only modifying the group shape extents. The modification, not
surprisingly, is ( approximately ) 50%.
Extent_X = Extent_X * .50
= 3803 * .5
= 1901
Extent_Y = Extent_Y * .50
= 2840 * .5
= 1420
X Y
Offset 914 1524
Extent 1919 1413
ChOffset 914 1524
ChExtent 3803 2840
Group Shape ( new )
Descrepancies between the table and details are due to rounding errors
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape ( old )
Case 8
Scenario: Given Case 5, rotate the group shape 90 degrees, clockwise
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Rotation = 5,400,000
Case 9
Scenario: Given Case 5, rotate the block arrow 90 degrees, clockwise
X Y
Offset 1161 1277
Extent 3557 3087
ChOffset 1161 1277
ChExtent 3557 3087
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
 Rotation = 5,400,000
The Details
Explanation
Since the block arrow ( a child shape ) was rotated, first a rotation value is applied to
that spPr.
As a result of the application of rotation on the block arrow, the bounding box of the
block arrow changes; this change ripples into the dimension of the group.
Leaving the calculation of the new bounding for the block arrow as an exercise for the
reader, a quick survey illustrates the general change. Observe:
X Y
Offset 1161 1277
Extent 3557 3087
ChOffset 1161 1277
ChExtent 3557 3087
Group Shape ( new )
Descrepancies between the table and details are due to rounding errors
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape ( old )
• The block arrow’s bounding box ( looking at the resultant picture ) is farther
along the X-axis. Note the group shape’s X-offset is 247 units longer.
• Because the X-Offset is longer, and the triangle has not moved, the group
shape’s X-extent is shorter … by 247 units.
• Since rotation occurs against the center of the selection, the top of the block
arrow’s bounding box is a shorter distance from the Y-axis. Note the group
shape’s Y-offset is 247 units shorter.
• Because the Y-Offset is shorter, and the triangle has not moved, the group
shape’s Y-extent is longer … by 247 units.
This is much easier to follow with matrix math, but I didn’t want to force this on
folks …
Lesson #4
• Rotation is done relative to the center of
the selection
Case 10
Scenario: Given Case 5, move the triangle to the right
X Y
Offset 914 1524
Extent 5618 2840
ChOffset 914 1524
ChExtent 5618 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 5472 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
X Y
 Offset 914 1524
 Extent 978 484
 Offset 5472 3449
 Extent 1060 914
Child Shapes
Explanation
Since we moved just the triangle shape along the X-axis, the triangle’s spPr gets an
updated Offset_X. Then we must recompute the group shape transform:
First determine the offset for the group:
Offset_X = Min (  Offset_X,  Offset_X )
= Min ( 914, 5472 )
= 914
Offset_Y = Min (  Offset_Y,  Offset_Y )
= Min ( 1524, 3449 )
= 1524
Next determine the extent of the group:
Extent_X = Max ( (  Offset_X +  Extent_X - Offset_X ) ,
(  Offset_X +  Extent_X - Offset_X ) )
= Max ( 5472 , 5618 )
= 5618
Extent_Y = Max ( (  Offset_Y +  Extent_Y - Offset_Y ) ,
(  Offset_Y +  Extent_Y - Offset_Y ) )
= Max ( 484, 2839 )
= 2839
And based on Lesson #1, the children values are the same …
X Y
Offset 914 1524
Extent 5618 2840
ChOffset 914 1524
ChExtent 5618 2840
Group Shape
Descrepancies between the table and details are due to rounding errors
Case 11
Scenario: Given Case 5, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Case 12
Scenario: Given Case 6, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 4197 1524
 Extent 978 484
 Offset 6941 3449
 Extent 1060 914
Child Shapes
X Y
Offset 4197 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
X Y
 Offset 4197 1524
 Extent 3803 2840
 Offset 914 1524
 Extent 3803 2840
Child Shapes ( Old )
Explanation
Since the group was moved along the X-axis, we need to determine new X-axis values
for the child shapes. The child shapes still have their original offset and extent values.
 Offset_X = G Offset_X – G chOffset_X +  Offset_X
= 4197 – 914 + 914
= 4197
 Offset_Y = G Offset_Y – G chOffset_Y +  Offset_Y
= 1524 – 1524 + 1524
= 1524
 Offset_X = G Offset_X – G chOffset_X +  Offset_X
= 4197 – 914 + 3657
= 6940
 Offset_Y = G Offset_Y – G chOffset_Y +  Offset_Y
= 1524 – 1524 + 3449
= 3449
X Y
 Offset 4197 1524
 Extent 978 484
 Offset 6941 3449
 Extent 1060 914
Child Shape ( New)
Discrepancies between the table and details are due to rounding errors
Case 13
Scenario: Given Case 7, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 493 241
 Offset 2298 2482
 Extent 535 454
Child Shapes
X Y
Offset 914 1524
Extent 1919 1413
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
The Details
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes ( Old )
Explanation
Since the group shape was scaled down by 50% but not moved, only the block arrow’s offset values will be
unchanged.
To determine the two shape’s extents, we simply apply the scaling factor:
 Extent_X =  Extent_X * .5  Extent_Y =  Extent_Y * .5
= 978 * .5 = 484 * .5
= 489 = 242
 Extent_X =  Extent_X *.5  Extent_Y =  Extent_Y *.5
= 1060 * .5 = 914 * .5
= 535 = 457
X Y
 Offset 914 1524
 Extent 493 241
 Offset 2298 2482
 Extent 535 454
Child Shape ( New)
Discrepancies between the table and details are due to rounding errors
To determine the offsets, we need to scale the values by the ratio of the group shape’s extent values. We
first translate to zero, apply the scale, and then translate back.
 Offset_X = (  Offset_X – G chOff_X ) * ( G extent_X / G chEnt_X ) + G Offset_X
= ( 914 – 914 ) * ( 1919 / 3803 ) + 914
= 914
 Offset_Y = (  Offset_Y – G chOff_Y ) * ( G extent_Y / G chEnt_Y ) + G Offset_Y
= ( 1524 – 1524 ) ( 1413 / 2840 ) + 1524
= 1524
 Offset_X = ( Offset_X – G chOff_X ) * ( G extent_X / G chEnt_X ) + G Offset_X
= ( 3657 – 914 ) * ( 1919 / 3803 ) + 914
= 2285
 Offset_Y = ( Offset_Y – G chOff_Y ) * ( G extent_Y / G chEnt_Y ) + G Offset_Y
= ( 3449 – 1524 ) ( 1413 / 2840 ) + 1524
= 2487
Lesson #5
• Scaling is always done using the ratio of
the group extents to the group children
extents ( even for calculating offsets )
Case 14
Scenario: Given Case 8, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 3504 1289
 Extent 978 484
 Offset 1323 3858
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 3803 2840
ChOffset 914 1524
ChExtent 3803 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Rotation = 5,400,000
Case 15
Scenario: Given Case 9, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
X Y
Offset 1161 1277
Extent 3557 3087
ChOffset 1161 1277
ChExtent 3557 3087
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 3657 3449
 Extent 1060 914
Child Shapes
BeforeAfter
 Rotation = 5,400,000
 Rotation = 5,400,000
Case 16
Scenario: Given Case 10, ungroup
X Y
Offset
Extent
ChOffset
ChExtent
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 5472 3449
 Extent 1060 914
Child Shapes
X Y
Offset 914 1524
Extent 5618 2840
ChOffset 914 1524
ChExtent 5618 2840
Group Shape
X Y
 Offset 914 1524
 Extent 978 484
 Offset 5472 3449
 Extent 1060 914
Child Shapes
BeforeAfter
Disclaimer
This presentation is for informational purposes only, and
should not be relied upon as a substitute or replacement for
Microsoft formal file format documentation, which is
available at the following
website: https://msdn.microsoft.com/en-
us/library/cc313118(v=office.12).aspx. Any views or
opinions presented in this material are solely those of the
author and do not necessarily represent those of
Microsoft. Microsoft disclaims all liability for mistakes or
inaccuracies in this presentation.

More Related Content

What's hot

25 surface area
25 surface area25 surface area
25 surface areamath267
 
Developing Expert Voices
Developing Expert VoicesDeveloping Expert Voices
Developing Expert Voicessuzanne
 
Lesson 8: Curves, Arc Length, Acceleration
Lesson 8: Curves, Arc Length, AccelerationLesson 8: Curves, Arc Length, Acceleration
Lesson 8: Curves, Arc Length, AccelerationMatthew Leingang
 
Lesson 2: A Catalog of Essential Functions (slides)
Lesson 2: A Catalog of Essential Functions (slides)Lesson 2: A Catalog of Essential Functions (slides)
Lesson 2: A Catalog of Essential Functions (slides)Matthew Leingang
 
Factorial Two way ANOVA balanced design
Factorial Two way ANOVA balanced designFactorial Two way ANOVA balanced design
Factorial Two way ANOVA balanced designWaleed Zaghal
 
Introduccio al calculo vectorial
Introduccio  al calculo vectorialIntroduccio  al calculo vectorial
Introduccio al calculo vectorialEDESMITCRUZ1
 
Linear approximations and_differentials
Linear approximations and_differentialsLinear approximations and_differentials
Linear approximations and_differentialsTarun Gehlot
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmKALAIRANJANI21
 
All Differentiation
All  DifferentiationAll  Differentiation
All Differentiationmrmcdowall
 
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang Liu
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang LiuSolutions Manual for Foundations Of MEMS 2nd Edition by Chang Liu
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang LiuHildaLa
 
Final Exam Review (Integration)
Final Exam Review (Integration)Final Exam Review (Integration)
Final Exam Review (Integration)Matthew Leingang
 
Lesson 6 differentials parametric-curvature
Lesson 6 differentials parametric-curvatureLesson 6 differentials parametric-curvature
Lesson 6 differentials parametric-curvatureLawrence De Vera
 

What's hot (18)

25 surface area
25 surface area25 surface area
25 surface area
 
Stats chapter 8
Stats chapter 8Stats chapter 8
Stats chapter 8
 
Calc 3.9a
Calc 3.9aCalc 3.9a
Calc 3.9a
 
Developing Expert Voices
Developing Expert VoicesDeveloping Expert Voices
Developing Expert Voices
 
Lesson 8: Curves, Arc Length, Acceleration
Lesson 8: Curves, Arc Length, AccelerationLesson 8: Curves, Arc Length, Acceleration
Lesson 8: Curves, Arc Length, Acceleration
 
Lesson 2: A Catalog of Essential Functions (slides)
Lesson 2: A Catalog of Essential Functions (slides)Lesson 2: A Catalog of Essential Functions (slides)
Lesson 2: A Catalog of Essential Functions (slides)
 
Factorial Two way ANOVA balanced design
Factorial Two way ANOVA balanced designFactorial Two way ANOVA balanced design
Factorial Two way ANOVA balanced design
 
Numerical Methods and Analysis
Numerical Methods and AnalysisNumerical Methods and Analysis
Numerical Methods and Analysis
 
Chapter2 part2
Chapter2 part2Chapter2 part2
Chapter2 part2
 
Introduccio al calculo vectorial
Introduccio  al calculo vectorialIntroduccio  al calculo vectorial
Introduccio al calculo vectorial
 
Linear approximations and_differentials
Linear approximations and_differentialsLinear approximations and_differentials
Linear approximations and_differentials
 
Nis differentiation1
Nis differentiation1Nis differentiation1
Nis differentiation1
 
Integration
IntegrationIntegration
Integration
 
Rasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithmRasterisation of a circle by the bresenham algorithm
Rasterisation of a circle by the bresenham algorithm
 
All Differentiation
All  DifferentiationAll  Differentiation
All Differentiation
 
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang Liu
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang LiuSolutions Manual for Foundations Of MEMS 2nd Edition by Chang Liu
Solutions Manual for Foundations Of MEMS 2nd Edition by Chang Liu
 
Final Exam Review (Integration)
Final Exam Review (Integration)Final Exam Review (Integration)
Final Exam Review (Integration)
 
Lesson 6 differentials parametric-curvature
Lesson 6 differentials parametric-curvatureLesson 6 differentials parametric-curvature
Lesson 6 differentials parametric-curvature
 

Similar to DrawingML Subject: Transforms

Computer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D2013901097
 
2 d transformation
2 d transformation2 d transformation
2 d transformationAnkit Garg
 
Mathematics TAKS Exit Level Review
Mathematics TAKS Exit Level ReviewMathematics TAKS Exit Level Review
Mathematics TAKS Exit Level Reviewguest3f17823
 
Test yourself unit 2 foundation as
Test yourself unit 2 foundation asTest yourself unit 2 foundation as
Test yourself unit 2 foundation asMrJames Kcc
 
Mod9 les2 rot dil
Mod9 les2 rot dilMod9 les2 rot dil
Mod9 les2 rot dilcandicef
 
Chapter 3 Image Processing: Basic Transformation
Chapter 3 Image Processing:  Basic TransformationChapter 3 Image Processing:  Basic Transformation
Chapter 3 Image Processing: Basic TransformationVarun Ojha
 
Estimation, Approximation and Standard form
Estimation, Approximation and Standard formEstimation, Approximation and Standard form
Estimation, Approximation and Standard formNsomp
 
Key stage 3_mathematics_level_6_revision_
Key stage 3_mathematics_level_6_revision_Key stage 3_mathematics_level_6_revision_
Key stage 3_mathematics_level_6_revision_harlie90
 
Measures of Dispersion: Standard Deviation and Co- efficient of Variation
Measures of Dispersion: Standard Deviation and Co- efficient of Variation Measures of Dispersion: Standard Deviation and Co- efficient of Variation
Measures of Dispersion: Standard Deviation and Co- efficient of Variation RekhaChoudhary24
 
3d transformation computer graphics
3d transformation computer graphics 3d transformation computer graphics
3d transformation computer graphics University of Potsdam
 
Transformations of functions
Transformations of functionsTransformations of functions
Transformations of functionsVictoria Ball
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformationjapan vasani
 
2IV60_4_3D_transformations.ppt
2IV60_4_3D_transformations.ppt2IV60_4_3D_transformations.ppt
2IV60_4_3D_transformations.pptssuser67281d
 

Similar to DrawingML Subject: Transforms (20)

Computer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2DComputer Graphic - Transformations in 2D
Computer Graphic - Transformations in 2D
 
Computer Graphics - transformations in 2d
Computer Graphics - transformations in 2dComputer Graphics - transformations in 2d
Computer Graphics - transformations in 2d
 
2 d transformation
2 d transformation2 d transformation
2 d transformation
 
3D Transformation
3D Transformation3D Transformation
3D Transformation
 
Mathematics TAKS Exit Level Review
Mathematics TAKS Exit Level ReviewMathematics TAKS Exit Level Review
Mathematics TAKS Exit Level Review
 
Test yourself unit 2 foundation as
Test yourself unit 2 foundation asTest yourself unit 2 foundation as
Test yourself unit 2 foundation as
 
Mod9 les2 rot dil
Mod9 les2 rot dilMod9 les2 rot dil
Mod9 les2 rot dil
 
Week6.ppt
Week6.pptWeek6.ppt
Week6.ppt
 
Transforms UNIt 2
Transforms UNIt 2 Transforms UNIt 2
Transforms UNIt 2
 
Chapter 3 Image Processing: Basic Transformation
Chapter 3 Image Processing:  Basic TransformationChapter 3 Image Processing:  Basic Transformation
Chapter 3 Image Processing: Basic Transformation
 
AppsDiff3c.pdf
AppsDiff3c.pdfAppsDiff3c.pdf
AppsDiff3c.pdf
 
Estimation, Approximation and Standard form
Estimation, Approximation and Standard formEstimation, Approximation and Standard form
Estimation, Approximation and Standard form
 
Key stage 3_mathematics_level_6_revision_
Key stage 3_mathematics_level_6_revision_Key stage 3_mathematics_level_6_revision_
Key stage 3_mathematics_level_6_revision_
 
Measures of Dispersion: Standard Deviation and Co- efficient of Variation
Measures of Dispersion: Standard Deviation and Co- efficient of Variation Measures of Dispersion: Standard Deviation and Co- efficient of Variation
Measures of Dispersion: Standard Deviation and Co- efficient of Variation
 
3D Transformation
3D Transformation 3D Transformation
3D Transformation
 
3d transformation computer graphics
3d transformation computer graphics 3d transformation computer graphics
3d transformation computer graphics
 
Transformations of functions
Transformations of functionsTransformations of functions
Transformations of functions
 
Two dimensional geometric transformation
Two dimensional geometric transformationTwo dimensional geometric transformation
Two dimensional geometric transformation
 
Enlargment tg3
Enlargment tg3Enlargment tg3
Enlargment tg3
 
2IV60_4_3D_transformations.ppt
2IV60_4_3D_transformations.ppt2IV60_4_3D_transformations.ppt
2IV60_4_3D_transformations.ppt
 

More from Shawn Villaron

Spreadsheet ml subject shared workbooks
Spreadsheet ml subject   shared workbooksSpreadsheet ml subject   shared workbooks
Spreadsheet ml subject shared workbooksShawn Villaron
 
Spreadsheet ml subject query table
Spreadsheet ml subject   query tableSpreadsheet ml subject   query table
Spreadsheet ml subject query tableShawn Villaron
 
Spreadsheet ml subject pivottable
Spreadsheet ml subject   pivottableSpreadsheet ml subject   pivottable
Spreadsheet ml subject pivottableShawn Villaron
 
Spreadsheet ml subject metadata
Spreadsheet ml subject   metadataSpreadsheet ml subject   metadata
Spreadsheet ml subject metadataShawn Villaron
 
Spreadsheet ml subject external links
Spreadsheet ml subject   external linksSpreadsheet ml subject   external links
Spreadsheet ml subject external linksShawn Villaron
 
Spreadsheet ml subject comments
Spreadsheet ml subject   commentsSpreadsheet ml subject   comments
Spreadsheet ml subject commentsShawn Villaron
 
Spreadsheet ml subject calc chain
Spreadsheet ml subject   calc chainSpreadsheet ml subject   calc chain
Spreadsheet ml subject calc chainShawn Villaron
 
Spreadsheet ml overview
Spreadsheet ml overviewSpreadsheet ml overview
Spreadsheet ml overviewShawn Villaron
 
Spreadsheet ml subject xml-mapping
Spreadsheet ml subject   xml-mappingSpreadsheet ml subject   xml-mapping
Spreadsheet ml subject xml-mappingShawn Villaron
 
Spreadsheet ml subject workbook
Spreadsheet ml subject   workbookSpreadsheet ml subject   workbook
Spreadsheet ml subject workbookShawn Villaron
 
Spreadsheet ml subject workbook connections
Spreadsheet ml subject   workbook connectionsSpreadsheet ml subject   workbook connections
Spreadsheet ml subject workbook connectionsShawn Villaron
 
Spreadsheet ml subject volatile dependencies
Spreadsheet ml subject   volatile dependenciesSpreadsheet ml subject   volatile dependencies
Spreadsheet ml subject volatile dependenciesShawn Villaron
 
Spreadsheet ml subject tables
Spreadsheet ml subject   tablesSpreadsheet ml subject   tables
Spreadsheet ml subject tablesShawn Villaron
 
Spreadsheet ml subject styles
Spreadsheet ml subject   stylesSpreadsheet ml subject   styles
Spreadsheet ml subject stylesShawn Villaron
 
Spreadsheet ml subject strings
Spreadsheet ml subject   stringsSpreadsheet ml subject   strings
Spreadsheet ml subject stringsShawn Villaron
 
Spreadsheet ml subject sheet
Spreadsheet ml subject   sheetSpreadsheet ml subject   sheet
Spreadsheet ml subject sheetShawn Villaron
 
4 wordprocessing ml subject - custom markup
4   wordprocessing ml subject - custom markup4   wordprocessing ml subject - custom markup
4 wordprocessing ml subject - custom markupShawn Villaron
 
3 wordprocessing ml subject - tables
3   wordprocessing ml subject - tables3   wordprocessing ml subject - tables
3 wordprocessing ml subject - tablesShawn Villaron
 
2 wordprocessing ml subject - paragraphs and rich formatting
2   wordprocessing ml subject - paragraphs and rich formatting2   wordprocessing ml subject - paragraphs and rich formatting
2 wordprocessing ml subject - paragraphs and rich formattingShawn Villaron
 
1 wordprocessing ml subject - main document
1   wordprocessing ml subject - main document1   wordprocessing ml subject - main document
1 wordprocessing ml subject - main documentShawn Villaron
 

More from Shawn Villaron (20)

Spreadsheet ml subject shared workbooks
Spreadsheet ml subject   shared workbooksSpreadsheet ml subject   shared workbooks
Spreadsheet ml subject shared workbooks
 
Spreadsheet ml subject query table
Spreadsheet ml subject   query tableSpreadsheet ml subject   query table
Spreadsheet ml subject query table
 
Spreadsheet ml subject pivottable
Spreadsheet ml subject   pivottableSpreadsheet ml subject   pivottable
Spreadsheet ml subject pivottable
 
Spreadsheet ml subject metadata
Spreadsheet ml subject   metadataSpreadsheet ml subject   metadata
Spreadsheet ml subject metadata
 
Spreadsheet ml subject external links
Spreadsheet ml subject   external linksSpreadsheet ml subject   external links
Spreadsheet ml subject external links
 
Spreadsheet ml subject comments
Spreadsheet ml subject   commentsSpreadsheet ml subject   comments
Spreadsheet ml subject comments
 
Spreadsheet ml subject calc chain
Spreadsheet ml subject   calc chainSpreadsheet ml subject   calc chain
Spreadsheet ml subject calc chain
 
Spreadsheet ml overview
Spreadsheet ml overviewSpreadsheet ml overview
Spreadsheet ml overview
 
Spreadsheet ml subject xml-mapping
Spreadsheet ml subject   xml-mappingSpreadsheet ml subject   xml-mapping
Spreadsheet ml subject xml-mapping
 
Spreadsheet ml subject workbook
Spreadsheet ml subject   workbookSpreadsheet ml subject   workbook
Spreadsheet ml subject workbook
 
Spreadsheet ml subject workbook connections
Spreadsheet ml subject   workbook connectionsSpreadsheet ml subject   workbook connections
Spreadsheet ml subject workbook connections
 
Spreadsheet ml subject volatile dependencies
Spreadsheet ml subject   volatile dependenciesSpreadsheet ml subject   volatile dependencies
Spreadsheet ml subject volatile dependencies
 
Spreadsheet ml subject tables
Spreadsheet ml subject   tablesSpreadsheet ml subject   tables
Spreadsheet ml subject tables
 
Spreadsheet ml subject styles
Spreadsheet ml subject   stylesSpreadsheet ml subject   styles
Spreadsheet ml subject styles
 
Spreadsheet ml subject strings
Spreadsheet ml subject   stringsSpreadsheet ml subject   strings
Spreadsheet ml subject strings
 
Spreadsheet ml subject sheet
Spreadsheet ml subject   sheetSpreadsheet ml subject   sheet
Spreadsheet ml subject sheet
 
4 wordprocessing ml subject - custom markup
4   wordprocessing ml subject - custom markup4   wordprocessing ml subject - custom markup
4 wordprocessing ml subject - custom markup
 
3 wordprocessing ml subject - tables
3   wordprocessing ml subject - tables3   wordprocessing ml subject - tables
3 wordprocessing ml subject - tables
 
2 wordprocessing ml subject - paragraphs and rich formatting
2   wordprocessing ml subject - paragraphs and rich formatting2   wordprocessing ml subject - paragraphs and rich formatting
2 wordprocessing ml subject - paragraphs and rich formatting
 
1 wordprocessing ml subject - main document
1   wordprocessing ml subject - main document1   wordprocessing ml subject - main document
1 wordprocessing ml subject - main document
 

Recently uploaded

Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Velvetech LLC
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...Akihiro Suda
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROmotivationalword821
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Matt Ray
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 

Recently uploaded (20)

Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...Software Project Health Check: Best Practices and Techniques for Your Product...
Software Project Health Check: Best Practices and Techniques for Your Product...
 
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
20240415 [Container Plumbing Days] Usernetes Gen2 - Kubernetes in Rootless Do...
 
英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
How To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTROHow To Manage Restaurant Staff -BTRESTRO
How To Manage Restaurant Staff -BTRESTRO
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
Open Source Summit NA 2024: Open Source Cloud Costs - OpenCost's Impact on En...
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 

DrawingML Subject: Transforms

  • 2.
  • 3. Where are we? spTree nvGrpSpPr grpSpPr sp nvSpPr spPr style txBody xfrm geo fillProperties lineProperties effectProperties scene3D sp3D bwMode
  • 4. Transform “Variables” • Shapes – Offset X – Offset Y – Extents X – Extents Y • Group Shapes – Offset X – Offset Y – Extents X – Extents Y – Child Offset X – Child Offset Y – Child Extents X – Child Extents Y
  • 5. Coordinate Space ( 0,0 ) X-Axis Y-Axis 2D Units measures in EMUs ( 914400 EMUs per inch )
  • 6. Shape Transform “Variables” Extent X Offset X Extent Y Offset Y ( 0,0 )
  • 7. Group Transform “Variables” ( 0,0 ) Offset X == Ch Offset X Offset Y == Ch Offset Y Extent Y == Ch Extent Y Extent X == Ch Extent X
  • 8. Lesson #1 • When a group is created the group’s offset and extents are equal to the children’s offset and extents. Offset_X == ChOffset_X Offset_Y == ChOffset_Y Extent_X == Extent_X Extent_Y == Extent_Y
  • 9. Lesson #2 • Effect Bounds do not relate to extent variables for shapes or groups ( 0,0 ) Offset X == Ch Offset X Offset Y == Ch Offset Y Extent Y == Ch Extent Y Extent X == Ch Extent X
  • 10. Case 1 Scenario: A slide contains two shapes, a block arrow and a triangle. X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset  Extent  Offset  Extent Child Shapes BeforeAfter
  • 11. Case 2 Scenario: Given Case 1, move the block arrow to the right X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 2673 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 12. Case 3 Scenario: Given Case 1, resize block arrow to 150% ( towards the BR of the slide ) X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 1467 726  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 13. Case 4 Scenario: Given Case 1, rotate the block arrow 90 degrees, clockwise X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter  Rotation = 5,400,000
  • 14. Lesson #3 • Rotation does not change the offset or extents of the target shape – But it might change the offset or extents of a containing shape – “Resolved” at rendering time
  • 15. Case 5 Scenario: Given Case 1, group both shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 16. The Details X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes Explanation First determine the offset for the group: Offset_X = Min (  Offset_X,  Offset_X ) = Min ( 914, 3657 ) = 914 Offset_Y = Min (  Offset_Y,  Offset_Y ) = Min ( 1524, 3449 ) = 1524 Next determine the extent of the group: Extent_X = Max ( (  Offset_X +  Extent_X - Offset_X ) , (  Offset_X +  Extent_X - Offset_X ) ) = Max ( 978, 3803 ) = 3803 Extent_Y = Max ( (  Offset_Y +  Extent_Y - Offset_Y ) , (  Offset_Y +  Extent_Y - Offset_Y ) ) = Max ( 484, 2839 ) = 2839 And based on Lesson #1, the children values are the same … X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape Descrepancies between the table and details are due to rounding errors
  • 17. Case 6 Scenario: Given Case 5, move the group to the right X Y Offset 4197 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 18. The Details X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes Explanation Because the entire group was moved to the right ( along the X-axis ) the Offset_X value of the group was the only variable that changed. X Y Offset 4197 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape Descrepancies between the table and details are due to rounding errors
  • 19. Case 7 Scenario: Given Case 5, resize the group to 50% ( towards the TL of the slide ) X Y Offset 914 1524 Extent 1919 1413 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 20. The Details Explanation Because we have scaled the group down by approximately 50% and we have not moved it, we are only modifying the group shape extents. The modification, not surprisingly, is ( approximately ) 50%. Extent_X = Extent_X * .50 = 3803 * .5 = 1901 Extent_Y = Extent_Y * .50 = 2840 * .5 = 1420 X Y Offset 914 1524 Extent 1919 1413 ChOffset 914 1524 ChExtent 3803 2840 Group Shape ( new ) Descrepancies between the table and details are due to rounding errors X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape ( old )
  • 21. Case 8 Scenario: Given Case 5, rotate the group shape 90 degrees, clockwise X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter Rotation = 5,400,000
  • 22. Case 9 Scenario: Given Case 5, rotate the block arrow 90 degrees, clockwise X Y Offset 1161 1277 Extent 3557 3087 ChOffset 1161 1277 ChExtent 3557 3087 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter  Rotation = 5,400,000
  • 23. The Details Explanation Since the block arrow ( a child shape ) was rotated, first a rotation value is applied to that spPr. As a result of the application of rotation on the block arrow, the bounding box of the block arrow changes; this change ripples into the dimension of the group. Leaving the calculation of the new bounding for the block arrow as an exercise for the reader, a quick survey illustrates the general change. Observe: X Y Offset 1161 1277 Extent 3557 3087 ChOffset 1161 1277 ChExtent 3557 3087 Group Shape ( new ) Descrepancies between the table and details are due to rounding errors X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape ( old ) • The block arrow’s bounding box ( looking at the resultant picture ) is farther along the X-axis. Note the group shape’s X-offset is 247 units longer. • Because the X-Offset is longer, and the triangle has not moved, the group shape’s X-extent is shorter … by 247 units. • Since rotation occurs against the center of the selection, the top of the block arrow’s bounding box is a shorter distance from the Y-axis. Note the group shape’s Y-offset is 247 units shorter. • Because the Y-Offset is shorter, and the triangle has not moved, the group shape’s Y-extent is longer … by 247 units. This is much easier to follow with matrix math, but I didn’t want to force this on folks …
  • 24. Lesson #4 • Rotation is done relative to the center of the selection
  • 25. Case 10 Scenario: Given Case 5, move the triangle to the right X Y Offset 914 1524 Extent 5618 2840 ChOffset 914 1524 ChExtent 5618 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 5472 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 26. The Details X Y  Offset 914 1524  Extent 978 484  Offset 5472 3449  Extent 1060 914 Child Shapes Explanation Since we moved just the triangle shape along the X-axis, the triangle’s spPr gets an updated Offset_X. Then we must recompute the group shape transform: First determine the offset for the group: Offset_X = Min (  Offset_X,  Offset_X ) = Min ( 914, 5472 ) = 914 Offset_Y = Min (  Offset_Y,  Offset_Y ) = Min ( 1524, 3449 ) = 1524 Next determine the extent of the group: Extent_X = Max ( (  Offset_X +  Extent_X - Offset_X ) , (  Offset_X +  Extent_X - Offset_X ) ) = Max ( 5472 , 5618 ) = 5618 Extent_Y = Max ( (  Offset_Y +  Extent_Y - Offset_Y ) , (  Offset_Y +  Extent_Y - Offset_Y ) ) = Max ( 484, 2839 ) = 2839 And based on Lesson #1, the children values are the same … X Y Offset 914 1524 Extent 5618 2840 ChOffset 914 1524 ChExtent 5618 2840 Group Shape Descrepancies between the table and details are due to rounding errors
  • 27. Case 11 Scenario: Given Case 5, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 28. Case 12 Scenario: Given Case 6, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 4197 1524  Extent 978 484  Offset 6941 3449  Extent 1060 914 Child Shapes X Y Offset 4197 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 29. The Details X Y  Offset 4197 1524  Extent 3803 2840  Offset 914 1524  Extent 3803 2840 Child Shapes ( Old ) Explanation Since the group was moved along the X-axis, we need to determine new X-axis values for the child shapes. The child shapes still have their original offset and extent values.  Offset_X = G Offset_X – G chOffset_X +  Offset_X = 4197 – 914 + 914 = 4197  Offset_Y = G Offset_Y – G chOffset_Y +  Offset_Y = 1524 – 1524 + 1524 = 1524  Offset_X = G Offset_X – G chOffset_X +  Offset_X = 4197 – 914 + 3657 = 6940  Offset_Y = G Offset_Y – G chOffset_Y +  Offset_Y = 1524 – 1524 + 3449 = 3449 X Y  Offset 4197 1524  Extent 978 484  Offset 6941 3449  Extent 1060 914 Child Shape ( New) Discrepancies between the table and details are due to rounding errors
  • 30. Case 13 Scenario: Given Case 7, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 493 241  Offset 2298 2482  Extent 535 454 Child Shapes X Y Offset 914 1524 Extent 1919 1413 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 31. The Details X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes ( Old ) Explanation Since the group shape was scaled down by 50% but not moved, only the block arrow’s offset values will be unchanged. To determine the two shape’s extents, we simply apply the scaling factor:  Extent_X =  Extent_X * .5  Extent_Y =  Extent_Y * .5 = 978 * .5 = 484 * .5 = 489 = 242  Extent_X =  Extent_X *.5  Extent_Y =  Extent_Y *.5 = 1060 * .5 = 914 * .5 = 535 = 457 X Y  Offset 914 1524  Extent 493 241  Offset 2298 2482  Extent 535 454 Child Shape ( New) Discrepancies between the table and details are due to rounding errors To determine the offsets, we need to scale the values by the ratio of the group shape’s extent values. We first translate to zero, apply the scale, and then translate back.  Offset_X = (  Offset_X – G chOff_X ) * ( G extent_X / G chEnt_X ) + G Offset_X = ( 914 – 914 ) * ( 1919 / 3803 ) + 914 = 914  Offset_Y = (  Offset_Y – G chOff_Y ) * ( G extent_Y / G chEnt_Y ) + G Offset_Y = ( 1524 – 1524 ) ( 1413 / 2840 ) + 1524 = 1524  Offset_X = ( Offset_X – G chOff_X ) * ( G extent_X / G chEnt_X ) + G Offset_X = ( 3657 – 914 ) * ( 1919 / 3803 ) + 914 = 2285  Offset_Y = ( Offset_Y – G chOff_Y ) * ( G extent_Y / G chEnt_Y ) + G Offset_Y = ( 3449 – 1524 ) ( 1413 / 2840 ) + 1524 = 2487
  • 32. Lesson #5 • Scaling is always done using the ratio of the group extents to the group children extents ( even for calculating offsets )
  • 33. Case 14 Scenario: Given Case 8, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 3504 1289  Extent 978 484  Offset 1323 3858  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 3803 2840 ChOffset 914 1524 ChExtent 3803 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter Rotation = 5,400,000
  • 34. Case 15 Scenario: Given Case 9, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes X Y Offset 1161 1277 Extent 3557 3087 ChOffset 1161 1277 ChExtent 3557 3087 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 3657 3449  Extent 1060 914 Child Shapes BeforeAfter  Rotation = 5,400,000  Rotation = 5,400,000
  • 35. Case 16 Scenario: Given Case 10, ungroup X Y Offset Extent ChOffset ChExtent Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 5472 3449  Extent 1060 914 Child Shapes X Y Offset 914 1524 Extent 5618 2840 ChOffset 914 1524 ChExtent 5618 2840 Group Shape X Y  Offset 914 1524  Extent 978 484  Offset 5472 3449  Extent 1060 914 Child Shapes BeforeAfter
  • 36. Disclaimer This presentation is for informational purposes only, and should not be relied upon as a substitute or replacement for Microsoft formal file format documentation, which is available at the following website: https://msdn.microsoft.com/en- us/library/cc313118(v=office.12).aspx. Any views or opinions presented in this material are solely those of the author and do not necessarily represent those of Microsoft. Microsoft disclaims all liability for mistakes or inaccuracies in this presentation.