Mirroring Plane Normal to World Z doesn't affect the Plane's orientation

If I take any Plane in Grasshopper and mirror it through the World XY Plane, the whole frame gets flipped as expected:


image

Except when the input plane is also the World XY Plane or any other plane with its Z facing {0,0,1}:


image

or


image

I believe this is a bug but I’m not 100% sure of the underlying maths/code so maybe this is “normal”. Any thoughts?

Hi @s.andraos

This isn’t a bug, but just how planes are defined in Rhino. I agree it can be a bit counterintuitive at first, particularly when it comes to mirroring, but once you know what behaviour to expect it does make sense.

Planes always maintain their handedness - Z is determined by X and Z, not something you can set separately.

Note that in your first example, if you look at the Z axis of your vertical plane, it is not getting mirrored in the World XY plane, but gets reversed:

2 Likes

Thanks for the very prompt reply @DanielPiker .

I was expecting the origin and normal to be mirrored but that leaves the other two axes potentially undefined.

I’m trying to get my head around the actual implementation. Would it be reasonable to say:


Given the Plane (coloured) to be mirrored in some reference (white) - the origin of the Plane and the X and Y vectors/“ends of its X and Y axes”, for want of a better term, are reflected in the white axes. From which the X and Y axes of the new Plane are “reconstituted”.

And because Z is just a product of X and Y axes of the new Plane (and handedness is always maintained), it happens to have the same direction as its predecessor?

Thanks again,

Seb