I want to convert Normal Vector (-0.5000, 0.0000, 0.7983) to Matrix.

Hot to convert?

Please answer to me.

Thank you.

I want to convert Normal Vector (-0.5000, 0.0000, 0.7983) to Matrix.

Hot to convert?

Please answer to me.

Thank you.

check the mathutil lib for matrix !

happy bl

A normal represents a direction in space. A matrix usually encodes translation, rotation, and scaling.

Do you want a matrix that translates along the normal? If that is the case then you can just use:

```
mat = Matrix.Translation(normal)
```

Thank you.

But i don’t know that how to extract a Rotation from normal vector?

maybe ?

mat = Matrix.Rotation(0,4,normal)

How to extract Rotation value from normal vector?

if it is a normal vector it doe not have a rotation only directions !

what do you want to extract ?

a face normal or the rotation of an object ?

the ob matrix has the location,rot and scale values!

happy bl

Thank you RickyBlender.

I want to know to extract a rotation matrix from normal vector Because i want to rotate a plane direction with absolute.

Blender support rotate object with relative.

But not support rotate object with absolute.

So, i want to know rotate object with absolute.

======== [ my script ] =======================

import bpy, bmesh, math, mathutils, os

from mathutils import Vector, Euler, Matrix

os.system(“cls”)

obj = bpy.context.object

me = obj.data

obj.update_from_editmode()

bpy.ops.object.mode_set(mode=“OBJECT”)

face = me.polygons[me.polygons.active]

cen = Vector(face.center[:])

n0 = Vector(face.normal[:])

nor = n0 * Matrix.Rotation(math.radians(35),4,‘Z’)

for v_index in face.vertices:

v = obj.data.vertices[v_index].co - cen

v = nor * v

obj.data.vertices[v_index].co = v

obj.data.vertices[v_index].co = obj.data.vertices[v_index].co + cen