Actually there’s an awesome vector function called “rotate” than can do all this for you.
>>> import math
>>> v = Vector( (0,0,1) )
>>> e = Euler( ( math.radians(90), 0, 0 ) )
>>> v.rotate( e )
>>> v
Vector((0.0, -1.0, -4.371138828673793e-08))
It’s worth noting, though, that the rotate function doesn’t just return a new vector, it actually affects the Vector in question, and will rotate normals, vertices, locations, etc.
If you want to just do a simple calculation, it’s best to first create a copy of the vector in question:
let say that you have a mesh 3d path = line
you can loop over all verts along the path
then for each edge you can make a vector
then do some calculations to get the normal to that vector
and that is the angle I need to change the rotation of another set of verts being move rotated at same angle then the normal
hopefully it can be done in 3D
I can show dwg for this
you make the edge a vector then there is only one normal
like bevel curve along a curve !
the bevel curve is always at 90 degrees or normal to the curve!