# 3D coordinate system orientation in Office Drawing Binary File Format

201 Reputation points
2021-11-12T18:21:26.22+00:00

The Office Drawing Binary File Format has the attributes c3DKeyX, c3DKeyY, c3DKeyZ and c3DFillX, c3DFillY, c3DFillZ. How is the coordinate system orientated? Is it a right-hand or a left-hand system?

Office Open Specifications
Office Open Specifications
Office: A suite of Microsoft productivity software that supports common business tasks, including word processing, email, presentations, and data management and analysis.Open Specifications: Technical documents for protocols, computer languages, standards support, and data portability. The goal with Open Specifications is to help developers open new opportunities to interoperate with Windows, SQL, Office, and SharePoint.
136 questions

1. 1,681 Reputation points Microsoft Employee
2021-11-19T21:36:39.98+00:00

The viewpoint (camera) is facing the "negative z direction". That implies these spatial properties use a right-handed coordinate system.

Michael Bowen
Escalation Engineer - Microsoft Open Specifications

2. 201 Reputation points
2021-11-20T16:27:46.997+00:00

Hi @Mike Bowen ,

In my calculations I get a direction with positive values towards the observer. That would be a left-hand coordinate system. As you get a right-hand coordinate system, it would be nice, if you point me to the error in my calculations.

Insert a circle, save to Rich Text Format (RTF). Toggle extrusion on, set 'Parallel' and 'Center', 'Surface' to 'Plastic', 'Lighting' to 'Normal'. Tilt circle up by 90deg. You get a rectangle with some bright facets.

Imagine you look from the top on to the solid. Then you see a circle. The x-axis points right and the y-axis points away from you. The observer looks from bottom to top. I assume, that the facet is brightest, if the reflected light is parallel to the z-axis.

The incoming light strikes the circle in one point P so, that the reflected light is parallel to the z-axis. This point P has a center angle 'beta'. The incoming light has an angle 'alpha'. Because of rule 'the angle of incidence equals the angle of reflection' you get the equation alpha=2*beta-90deg. (Angles measured clockwise against the positive part of the x-axis). The observer sees the brightest facet at position width/2+width/2*cos(beta) measured from the left edge of the 90deg rotated, extruded circle.

Try a RTF light direction (40000, 0 , 30000) and look at the actual rendering. That looks like 'z-axis towards observer' for me. And that would be a left-hand coordinate system. Unfortunately the comment does not allow long explanation. May I sent you a document with explanations and illustrations and an RTF example?

Regina Henschel