blender3d.cz
http://blender3d.cz/forum/

Jednoduché rastliny
http://blender3d.cz/forum/viewtopic.php?f=7&t=40
Stránka 11

Autor:  iIN [ pát črc 16, 2004 11:33 am ]
Předmět příspěvku:  Jednoduché rastliny

Tak som upravil moj skript na generovanie rastlín a už konečne funguje ako má :)

Kód:
#########################################################
#                                                       #
# Skript na jednoduche generovanie jednoduchych rastlin #
#                                                       #
# Oznacte list a stlacte "Alt-P" - A program vygeneruje #
# objekt podobny rastline (mozno ;)) Upravte ako chcete #
# ale hadam mi aj dajte vediet (mailing-list@szm.sk)..  #
#                                                       #
#                                                       #
#                                                       #
#                    ..vdaka Ashovi za vydatnu pomoc :) #
#                                                       #
#########################################################

import Blender
from Blender import NMesh
from math import *
import random

vyska   = 20                   # pocet segnentov
segment = 0.3                  # vyska jedneho segmentu
minus   = 0.01                  # kazdy novy segment moze mat inu vysku
# ^^^ Uzivat s rozvahou!
hrubka  = 0.25                  # hrubka stebla {?}
nahoda  = 3                  # nahoda
rotlist = 2                  # o kolko zrotuje dajsi list
listy   = 1                  # Chceme listy?
zlist   = 0.3                  # O kolko chceme zvacsit dalsi list?

if (nahoda==0):
   nahoda=1000

for i in range(15):               # (kvazi)pomazeme okienko :)
   print

me=NMesh.GetRaw()               # ziskame kontrolu nad Meshmi

xp=0
yp=0
rt=0
sz=1+(1/vyska)

print dir(NMesh)

for i in range(vyska):                    # a rastlinime :)
      
      Blender.Redraw()

      xrnd=random.random()-0.5
      yrnd=random.random()-0.5
      xp=xp+xrnd/nahoda
      yp=yp+yrnd/nahoda

      v=NMesh.Vert(0+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
      me.verts.append(v)
      v=NMesh.Vert((hrubka*i/vyska)/2+xp,(hrubka*i/vyska)*3/4+yp,-(i-1)*segment+(vyska*segment)-1)
      me.verts.append(v)
      v=NMesh.Vert(hrubka*i/vyska+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
      me.verts.append(v)

      if (listy==1):            # A olistime

         oList=Blender.Object.GetSelected()[0]
         nList=Blender.Object.New("Mesh")
         mList=oList.getData()
         nList.link(mList)
         nList.setName("rList"+str(i))
         Blender.Scene.getCurrent().link(nList)
         
         nList.setLocation(0+xp,0+yp,-(i-1)*segment+(vyska*segment)-1)
         nList.setEuler(0,0,rt)
         nList.setSize (sz,sz,sz)
         sz=sz-zlist         

         rt=rotlist+rt

      segment=segment+minus

for i in range(1,vyska):                 #ofacujeme

      Blender.Redraw()

      f=NMesh.Face()
      f.v.append(me.verts[i*3-3])
      f.v.append(me.verts[i*3])
      f.v.append(me.verts[i*3+1])
      f.v.append(me.verts[i*3-2])
      me.faces.append(f)

      f=NMesh.Face()
      f.v.append(me.verts[i*3-3+1])
      f.v.append(me.verts[i*3+1])
      f.v.append(me.verts[i*3+1+1])
      f.v.append(me.verts[i*3-2+1])
      me.faces.append(f)

      f=NMesh.Face()
      f.v.append(me.verts[i*3-3])
      f.v.append(me.verts[i*3])
      f.v.append(me.verts[i*3+2])
      f.v.append(me.verts[i*3-1])
      me.faces.append(f)

me.setSubDivLevels([2,2])
NMesh.PutRaw(me, "rastlinka", 1)


Blender.Redraw()

Autor:  SirThomas [ pát črc 16, 2004 11:54 am ]
Předmět příspěvku:  Re: Jednoduché rastliny

iIN píše:
Tak som upravil moj skript na generovanie rastlín a už konečne funguje ako má :)



Můžeš mi to tady hodit do příloha, já to potom hodím do download, díky.

Autor:  iIN [ pát črc 16, 2004 12:01 pm ]
Předmět příspěvku: 

Takže tu :)
Inak by si mohol povoliť uploadovanie python skriptov (.py)

Autor:  SirThomas [ pát črc 16, 2004 12:30 pm ]
Předmět příspěvku: 

iIN píše:
Takže tu :)
Inak by si mohol povoliť uploadovanie python skriptov (.py)


Chci v sekci Download udržet "štábní kultůru" takže tohle nedovolím :) , vždy mi to tady někde pošlete a já to tam dám, díky za pochopení. :wink:

Stránka 11 Všechny časy jsou v UTC + 1 hodina [ Letní čas ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/