NOTA! Questo sito utilizza i cookie e tecnologie simili.

Se non si modificano le impostazioni del browser, l'utente accetta. Per saperne di piu'

Approvo

Il modulo Mathutils delle API di programmazione Blender + Python

 

Il modulo Mathutils delle API di programmazione Blender + Python fornisce, come suggerisce il nome, classi e metodi per effettuare con facilità operazioni matematiche su strutture ed elementi come i vettori, le matrici, i quaternioni e gli oggetti Euler.

 

Esempio di utilizzo:

import Blender

from Blender import Mathutils

from Blender.Mathutils import *

vettore1 = Vector([1,1,1])

vettore2 = Vector([2,-1,3])

vettore3 = vettore1.cross(vettore2)

print vettore3

print vettore3.magnitude

Più in basso, in questa stessa pagina, vi sono le definizioni di classi e metodi messi a disposizione da tale modulo.

 

NOTA --- Per richiamare tale modulo all'interno del Game Engine (GE, il motore di gioco di Blender), bisognerà utilizzare la dicitura "Mathutils" anziché "Blender.Mathutils").

 

 

CLASSI

 

Principali funzioni e metodi di Mathutils

Rand(low, high) Restituisce un valore float (numero in virgola mobile) casuale.

I parametri low e high sono opzionali (valori di default: 0.0 e 1.0 rispettivamente) e rappresentano gli estremi inferiore e superiore dell'intervallo.

Intersect(vec1, vec2, vec3, ray, orig, clip=1)   :   Vector Restituisce l'intersezione (se presente, altrimenti None) tra un triangolo (i cui vertici sono identificati dai primi tre vec, tra i parametri del metodo) e un vettore di origine orig e direzione ray.

Clip è un booleano: se posto a 0, l'intersezione sarà fatta tra il "raggio" ray e tutto il piano contenente il triangolo (d'altronde, tre punti identificano un piano).

TriangleArea(vec1, vec2, vec3)   :   float Restituisce l'area del triangolo specificato mediante le coordinate dei suoi vertici (coordinate passate, a livello di parametri, tramite tre oggetti Vector).
TriangleNormal(vec1, vec2, vec3)   :   float Restituisce la normale del triangolo specificato mediante le coordinate dei suoi vertici (coordinate passate, a livello di parametri, tramite tre oggetti Vector).
QuadNormal(vec1, vec2, vec3, vec4)   :   float Restituisce la normale del quadrilatero specificato mediante le coordinate dei suoi vertici (coordinate passate, a livello di parametri, tramite quattro oggetti Vector).
LineIntersect(vec1, vec2, vec3, vec4)   :   (Vector, Vector) Restituisce una tupla contenente due Vector, ciascuno dei quali contiene le coordinate dei due punti più vicini tra due rette (specificate da due coppie di Vector: una coppia identifica le coordinate dei due vertici estremi di un segmento); se i due vettori si intersecano, i valori presenti nei due Vector della tupla saranno identici.
AngleBetweenVecs(vec1, vec2)   :   float Restituisce il valore dell'angolo compreso tra due vettori.
MidpointVecs(vec1, vec2)   :   Vector Restituisce un vettore mediano tra i due vettori passati come parametri.
ProjectVecs(vec1, vec2)   :   Vector Restituisce, sotto forma di oggetto Vector, la proiezione del primo vettore passato come parametro sul secondo.
RotationMatrix((angle, matSize, axisFlag, axis)   :   Matrix Crea una matrice rappresentante una rotazione specificata mediante i parametri angle (angolo di rotazione) e axis (vettore che rappresenta l'asse di rotazione); matSize è un intero che serve a specificare se la matrice deve essere 2D, 3D o 4D; il parametro axisFlag è una stringa, opzionale.
TranslationMatrix(vector)   :   Matrix Crea una matrice rappresentante una traslazione (direzione, verso e modulo della traslazione sono vanno specificate attraverso il vettore (oggetto Vector) da passare come parametro).
ScaleMatrix(factor, matSize, axis)   :   Matrix Crea una matrice rappresentante uno scaling o ridimensionamento. Il parametro factor indica l'entità della trasformazione; matSize è un intero che serve a specificare se la matrice deve essere 2D, 3D o 4D; il parametro axis, opzionale, è un vettore che indica la direzione da influenzare.
DifferenceQuats(quat1, quat2)   :   Quaternion Restituisce un quaternione che rappresenta la differenza "rotazionale" tra i due quaternioni passati come parametri.
Slerp(quat1, quat2, factor)   :   Quaternion Restituisce un quaternione che rappresenta l'interpolazione tra due quaternioni calcolata in base ad un fattore indicato mediante il parametro float factor.

 

Vi sono poi i seguenti metodi, contrassegnati però come "Deprecated" (sostituiti, in genere con metodi propri delle varie classi; ad esempio, anziché CopyVec, CrossVecs, DotVecs ecc... bisognerebbe utilizzare i metodi messi a disposizione dalla classe Vector).

Metodi deprecated di Mathutils

CopyVec(vector)   :   Vector Crea una copia dell'oggetto Vector passato come parametro.
CrossVecs(vec1, vec2)   :   Vector Effettua il prodotto vettoriale (cross product, prodotto incrociato) dei due vettori passati come parametri.
DotVecs(vec1, vec)   :   float Effettua il prodotto scalare (dot product, prodotto puntuale) dei due vettori passati come parametri.
VecMultMat(vec, mat)   :   Vector Moltiplica un vettore per una matrice (la dimensione del vettore e il numero di colonne della matrice devono coincidere).
CopyMat(matrix)   :   Matrix Crea una copia della matrice (oggetto Matrix) passata come parametro.
MatMultVec(mat, vec)   :   Vector Moltiplica una matrice per un vettore (la dimensione del vettore e il numero di righe della matrice devono coincidere).
CopyQuat(quaternion)   :   Quaternion Crea una copia del quaternione (oggetto Quaternion) passato come parametro.
CrossQuats(quat1, quat2)   :   Quaternion Restituisce il prodotto vettoriale (cross product, prodotto incrociato) dei due quaternioni passati come parametri.
DotQuats(quat1, quat2)   :   float Restituisce il prodotto scalare (dot product, prodotto scalare) dei due quaternioni passati come parametri.
CopyEuler(euler)   :   Euler Restituisce una copia dell'oggetto Euler passato come parametro.
RotateEuler(euler, angle, axis) Effettua una rotazione dell'oggetto Euler passato come parametro intorno all'asse di rotazione specificato dal vettore (oggetto Vector) axis; l'entità della rotazione è espressa, in gradi, mediante il parametro angle.

 

 
Vai all'inizio della pagina