dijous, 12 de novembre del 2015

Primers passos amb Python

En aquesta entrada mostraré els meus primers passos amb el llenguatge de programació Python aplicat a Blender.

També faig aquesta entrada en solidaritat amb la meva seguidora més fidel, que està embolicada en llenguatges de programació i patint de valent amb ells, però  segur que se'n sortirà !!! Ànims !!!

Ja fa quasi un any em va regalar dos llibres sobre Blender.

El primer sobre modelatge i animació, que m'ha permès millorar força la creació i modificació d'elements.

El segon sobre el llenguatge Python. A aquest darrer no li havia pogut dedicar gaire atenció, però ara li ha arribat el moment !

Per començar, per no perdre les tradicions informàtiques, he après a escriure el text " Hola Món ! "

I tot seguit a fer petites operacions matemàtiques i a aplicar-les a Blender.

Aquí mostro el primer programa de prova, que escriu el text " Hola Món ! " i crea diverses esferes, els centres de les quals estan situats sobre una paràbola.

Script de Blender

Resultat obtingut


A continuació m'he plantejat crear la paràbola com una successió de vèrtexs units per segments. Seguint les instruccions del llibre, les d'aquest lloc web i les d'aquest altre lloc web, he pogut aconseguir-ho.

El codi  crea primer dues matrius, una per als vèrtexs i una altra per als segments i després les omple de manera paramètrica.

A partir d'un paràmetre ii (que depèn del número de vèrtexs) es calculen les coordenades de cada vèrtex, i s'escriuen a cada lloc de la matriu de vèrtexs

La matriu de segments (que té un número de llocs igual al número de vèrtexs meny una unitat) s'omple amb els números de vèrtexs consecutius
(si la figura fos tancada hi hauria un segment més, que enllaçaria el vèrtexs número zero amb el darrer)

Finalment es crea la malla i després l'objecte que té com a geometria la malla anterior.

Descripció d'alguns vèrtexs i segments




 A continuació adjunto el codi en format text, per tal que es pugui copiar i enganxar.



# **************************************
# ****  Divagacions3D.blogspot.com  ****
# **************************************
# ****  Prova 002 - Paràbola ***********
# **************************************

# Capçalera
import bpy
import math

    
# Estableix el número de vèrtexs de la paràbola
numvertexs = 16

# crea les matrius de la malla
Verts = []
Edges = []

# omple la matriu de vèrtexs    
for i in range(numvertexs):
        ii=i-(numvertexs/2)
  
        x = 5 + (1*ii)
        y = 0
        z = -4 + (0.2*ii)+(0.2*(ii**2))
        Verts.append((x, y, z))
    
# omple la matriu de segments
for i in range(numvertexs-1):
        # afegeix la vora que uneix cada vèrtex amb el següent
        Edges.append([i, i+1])
    
# crea la malla "Parabolamalla"
malla = bpy.data.meshes.new("Parabolamalla")
malla.from_pydata(Verts, Edges, [])
malla.update()
    
# crea l'objecte  "Parabola"
objecte = bpy.data.objects.new("Parabola", malla)
objecte.data = malla
    
# selecciona l'objecte creat
escena = bpy.context.scene
escena  .objects.link(objecte)
objecte.select = True 

1 comentari:

  1. Aish senyor! i jo em queixo de l'scratch!! hi ha qui serveix per programar i qui no (jo sóc una mostra vivent del segon cas, jajajaja). Com dic jo... Déu mantingui aficionats jajjajajaa. Jo segueixo batallant (ja amb millors resultats) gràcies per les mostres de solidaritat, jeje. No he entès res de l'entrada però progresses adequadament :). Petonets

    ResponElimina