Strange vector rotation angle

Can someone enlighten me why 'Rotate object object on a plane’ gives such a strange result while Rotate 3D is correct?

is there any possibility that the CPlane shown in the image is not the very same Cplane being used by Grasshopper?
not plugging the X Y inputs on the “create plane” component makes it use the default ones, which might not be the ones in the image if the CPlane was changed? this is the only thing that comes to my mind at the moment

edit: or maybe the origin of the problem is this X input?

A vector is not geometry. It doesn’t exist in one place, it exists everywhere (and nowhere). When a component asks for geometry, it will probably convert the vector to a point in World coordinates and then rotate that point.

I’ll need to double check the code when I get to the office, but that’s basically the reason why there’s a separate vector rotate component in the first place.

the boss is right AGANE :slight_smile:

I still don’t buy that explanation:


RED is a tangent vector to X, I force-fed the Y so the plane is clear and obvious.
I just don’t get why rotating on XY plane gives strange result while rotating around Z axis at plane’s origin gives the correct one.

You’ll need to upload the file so we can all see what you’re seeing and debug what you’re debugging.

I’ve extracted the bit that troubles me. I might be mistaken on a very basic principle here, never refuse to learn something new.
trouble with VECTOR rotation.gh (16.4 KB)

I won’t be able to look at it until I get into the office (only have a tablet at home), but you’ll definitely want to experiment with converting the vector to a point yourself, then performing the rotation, then converting it back into a vector again. I have a suspicion that’s what’s happening behind the scenes here to create the blue arrow.

It may be the way of solving it but the solution is there using rotation around the axis…
I was just digging the non-starightforward logic of first operation.

Why you used this rotated plane?

I have tested several planes, simple XY included, all were giving me the same result.

XY is the plane by default ,as you see worked fine

It works, indeed (to my surprise) but when you do this:


it still doesn’t, which makes no sense since it is the same plane with different origin.

In this the problem is with the origin

Yes, the origin’s location generates the problem. Rotating the red vector around ANY point on the plane should result in blue vector being perpendicular.