![]() |
|
Bienvenido a Foros 3DPoder.. Usted esta viendo este foro como invitado, no esta registrado todavía, lo que limita su visión del foro. Si quiere unirse gratis a la mayor comunidad del diseño gráfico de habla hispana, tener acceso a publicar y responder mensajes, tener mensajes privados con otros miembros(PM), responder encuestas, publicar sus imágenes para que las vea el resto del mundo, tener acceso a los video_tutoriales, y muchas cosas más, no lo dude. Registrarse es rápido, simple y gratuito, agregate hoy a la mayor comunidad 3D de habla hispana! ! Si usted tiene algún problema con su registro, por favor , díganoslo aquí.
|
![]() |
|
|||||||
|
|
|
|
#1 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,946
|
Matemats, el script multifamoso para crear (de momento) curvas paramétricas, tiene nueva versión. Y aquí está, la lista de fetaúres es inmesa, como puede comprobarse:
Es un script de tipo AddMesh, lo que significa que se accede a él con espacio-> Add>Mesh>'Matemats' El script perrea así: ![]() Código:
#!BPY
""" Registration info for Blender menus:
Name: 'Matemats'
Blender: 246
Group: 'AddMesh'
Tip: 'Represents math functions'
"""
__version__=1.25
#!BPY
""" Registration info for Blender menus:
Name: 'Matemats'
Blender: 246
Group: 'AddMesh'
Tip: 'Represents math functions'
"""
__version__=1.25
__author__ = 'Klopes'
__version__ = '1.0 2008/05/26'
__url__ = ["Mi Kasa, http://klopes.tk", "blender", "elysiun"]
__email__ = ["Klopes, klopes@unizar.es", "scripts"]
import Blender
from Blender import NMesh,BGL
from Blender.Draw import *
from Blender import BGL
from math import *
def fcart(t):
A,B,C,D,E = a.val,b.val,c.val,d.val,e.val
return (eval(Fun1.val),eval(Fun2.val),eval(Fun3.val))
def fpolar(t):
A,B,C,D,E = a.val,b.val,c.val,d.val,e.val
return (eval(Fun1.val+'*cos(t)'),eval(Fun1.val+'*sin(t)'),eval(Fun3.val))
presets=[1,
['Identity 1:1','t','t','0',-1,1,100,[]],
['Ellipse',' A*cos(t)',' B*sin(t)','0',0,2*pi,32,[1,1]],
['Helix',' cos(t)',' sin(t)',' t/10',0,4*pi,64,[]],
['Black Hole',' sin(t*10)/t**2',' cos(t*10)/t**2',' -t',.2,5.,64,[]],
['Lissajous',' cos(t/A)',' cos(t/B)',' sin(t/C)',0,2*pi*2*3*5,256,[2,3,5]],
['Polynom',' t',' A*t**4 + B*t**3 + C*t**2 + D*t + E',' 0',-2,2,256,[0,1,0,-1,1]],
]
presetsP=[2,
['Circunference','1','','0',0,2*pi,32,[]],
['Linear spiral','A*t','','0',0,4*pi,32,[0.5]],
['Logaritmic spiral','A*exp(t)','','0',0,4*pi,32,[0.5]]
]
Ext0=Create(0.0)
Ext1=Create(1.0)
N=Create(100)
Salto=Create(0.01)
Nom=Create("Function")
Fun1=Create("t")
Fun2=Create("t")
Fun3=Create("0.0")
FEntryPreset=Create(1)
FEntryTyp=Create(1)
Buf=Create(1)
a=Create(0.0)
b=Create(0.0)
c=Create(0.0)
d=Create(0.0)
e=Create(0.0)
auto=Create(1)
def creacurva(nombre,Ex0,Ex1,n,salto):
me=NMesh.New(nombre)
try:
pass
except:
Blender.Draw.PupMenu("Revisa el texto")
return
if FEntryTyp.val==1:
f=fcart
else:
f=fpolar
v0=NMesh.Vert( f(Ex0)[0],f(Ex0)[1],f(Ex0)[2])
me.verts.append(v0)
for i in range(n):
t=(i+1)*salto+Ex0
v1=NMesh.Vert( f(t)[0], f(t)[1], f(t)[2] )
me.addEdge(v0,v1)
me.verts.append(v1)
v0 = v1
NMesh.PutRaw(me,nombre)
def TexBuf():
menuText,i='',0
for tx in Blender.Text.Get():
i+=1
menuText+='|'+tx.name+'%x'+str(i)
return menuText
def draw():
global Ext0,Ext1,N,Salto,Nom,Fun1,Fun2,Fun3,FEntryTyp,Buf,FEntryPreset
global auto,exprX,exprY,exprZ,a,b,c,d,e
BGL.glClearColor(0.5, 0.5, 0.6, 1)
BGL.glColor3f(1.,1.,1.)
BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
# FEntryTyp=Menu("Entry type%t|Cartesian function%x1|Cylindric function%x2|Text buffer%x3|File%x4", 98,216,142,87,18,FEntryTyp.val)
FEntryTyp=Menu("Entry type%t|Cartesian function%x1|Cylindric function%x2",
98,216,142,87,18,FEntryTyp.val)
Ext0=Number("Inf =",2,13,79,100,18,Ext0.val,-10000,10000,"Extremo inf. del intervalo")
Ext1=Number("Sup =",2,112,79,100,18,Ext1.val,-10000,10000,"Extremo sup. del intervalo")
N=Number("# segmts",2,10,55,205,18,N.val,1,200001,"Numero de segmentos")
Salto=Number("Segmts lenght=",3,10,37,205,18,Salto.val,.000001,abs(Ext1.val-Ext0.val),"Separacion entre vertices")
Nom=String("Obj name: ",98,10,165,205,18,Nom.val,50)
if FEntryTyp.val==1:
Fun1 = String("X(t)=",3,10,142,205,18,Fun1.val,100,"Expresion en t")
Fun2 = String("Y(t)=",3,10,122,205,18,Fun2.val,100,"Expresion en t")
Fun3 = String("Z(t)=",3,10,102,205,18,Fun3.val,100,"Expresion en t")
tx = "Presetes%t"
for preset in presets[1:]:
tx = tx + "|" + preset[0]
FEntryPreset=Menu(tx,10,216,122,87,18,FEntryPreset.val)
if FEntryTyp.val==2:
Fun1 = String("r(t)=",3,10,142,205,18,Fun1.val,100,"Expresion en t")
Fun3 = String("Z(t)=",3,10,122,205,18,Fun3.val,100,"Expresion en t")
tx = "Presetes%t"
for preset in presetsP[1:]:
tx = tx + "|" + preset[0]
FEntryPreset=Menu(tx,10,216,122,87,18,FEntryPreset.val)
elif FEntryTyp.val==3:
Buf=Menu("Select buffer%t"+TexBuf(),98,10,102,205,18,Buf.val)
exprX = '\n'.join( Blender.Text.Get()[Buf.val-1].asLines() )
exprY = '\n'.join( Blender.Text.Get()[Buf.val-1].asLines() )
exprZ = '\n'.join( Blender.Text.Get()[Buf.val-1].asLines() )
Blender.BGL.glRasterPos2i(226,84)
Text('A')
Blender.BGL.glRasterPos2i(226,66)
Text('B')
Blender.BGL.glRasterPos2i(226,48)
Text('C')
Blender.BGL.glRasterPos2i(226,30)
Text('D')
Blender.BGL.glRasterPos2i(226,12)
Text('E')
a = Number("",4,238,78,60,18,a.val,-10000.,10000.,"Parametro A")
b = Number("",4,238,60,60,18,b.val,-10000.,10000.,"Parametro B")
c = Number("",4,238,42,60,18,c.val,-10000.,10000.,"Parametro C")
d = Number("",4,238,24,60,18,d.val,-10000.,10000.,"Parametro D")
e = Number("",4,238,6,60,18,e.val,-10000.,10000.,"Parametro E")
auto = Toggle("Auto Update",10,220,100,80,18,auto.val)
Button("Draaaw!",1,10,5,170,28)
Button("Exit",99,185,7,30,22)
def event(evt,val):
if evt==ESCKEY: Exit()
def bevent(evt):
if evt==10: #PRESET
if FEntryTyp.val==1:
pres=presets
elif FEntryTyp.val==2:
pres=presetsP
Fun1.val = pres[FEntryPreset.val][1]
Fun2.val = pres[FEntryPreset.val][2]
Fun3.val = pres[FEntryPreset.val][3]
Ext0.val = pres[FEntryPreset.val][4]
Ext1.val = pres[FEntryPreset.val][5]
N.val = pres[FEntryPreset.val][6]
try:
a.val = pres[FEntryPreset.val][7][0]
b.val = pres[FEntryPreset.val][7][1]
c.val = pres[FEntryPreset.val][7][2]
d.val = pres[FEntryPreset.val][7][3]
e.val = pres[FEntryPreset.val][7][4]
except:
pass
if evt==3:
N.val=(Ext1.val-Ext0.val)/Salto.val
if evt==2 or evt==10:
Salto.val=(Ext1.val-Ext0.val)/N.val
Ext1.val=max(Ext1.val,Ext0.val)
Ext0.val=min(Ext1.val,Ext0.val)
if evt==1 or (auto.val and (evt==3 or evt==2 or evt==4 or evt==10)):
creacurva(Nom.val,Ext0.val,Ext1.val,N.val,Salto.val)
if evt==3:
FEntryPreset.val=0
if evt==99:
Exit()
Blender.Redraw()
Register(draw,event,bevent)
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 Última edición por Klópes fecha: 26 may 2008 a las 08:36. |
|
|
|
| Enlaces patrocinados |
|
|
#2 |
|
Administrador
Fecha de Ingreso: abril-2002
Ubicación: 28.10º N 15.43º W in a blue planet.
Mensajes: 16,904
|
Pa' la saca, muchas zénkius
![]() ...
__________________
Obtén enseñanza tradicional en arte y cine. Los ordenadores solo son herramientas. Ellos no pueden tomar decisiones creativas, y solo pueden crear trabajos tan buenos como tus conocimientos y tu experiencia les permita. Victor Navone |
|
|
|
|
|
#3 |
|
Senior Member
Fecha de Ingreso: diciembre-2003
Mensajes: 2,316
|
Muuuuy interesante .... muchas gracias!!!!
Un saludo.
__________________
Cuiño, cuiiiiño!!!! |
|
|
|
|
|
#4 |
|
Blendemoniado
Fecha de Ingreso: marzo-2006
Ubicación: MÁLAGA
Mensajes: 2,348
|
QUé hay que hacer?
¿pegar el scipt en la ventana de texto y dar "ENTER" o LOAD "" ? XD
__________________
"Trate la historia como si todo el proyecto dependiera de ella porque,probablemente,así sea" (Mark Adams) http://www.3dpoder.com/blog3d/gekkonidae/ |
|
|
|
|
|
#5 | |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,946
|
Cita:
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
|
#6 |
|
Senior Member
Fecha de Ingreso: mayo-2005
Ubicación: Entre Zaragoza y Barcelona
Mensajes: 525
|
no viene a cuento pero me encanta tu firma :P
el script muy chulo y muy bonito por cierto
__________________
Yo no soy freaky soy mago de nivel 23 Última edición por radimov fecha: 26 may 2008 a las 12:26. |
|
|
|
|
|
#7 |
|
BlenderAdicto
Fecha de Ingreso: diciembre-2004
Ubicación: Valencia-España
Mensajes: 10,197
|
Ahí, ahí!!
![]() |
|
|
|
|
|
#8 |
|
Senior Member
Fecha de Ingreso: mayo-2005
Ubicación: Entre Zaragoza y Barcelona
Mensajes: 525
|
__________________
Yo no soy freaky soy mago de nivel 23 |
|
|
|
|
|
#9 |
|
Viva Blender !!!
Fecha de Ingreso: abril-2006
Ubicación: República Dominicana
Mensajes: 691
|
No es cosa fácil ser amigo de una tía así
|
|
|
|
|
|
#10 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,946
|
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
#11 |
|
BlenderAdicto
Fecha de Ingreso: mayo-2002
Mensajes: 1,703
|
Wow qué bueno! Muchas mercis Klópes!!
Oye, siempre me olvido de pedirte si tienes por ahí, compartible, el .blend de la charla sobre el espectro electromagnético que diste. No, no es por el dibujo del espectro (si le hubieses puesto pechos de esos turgentes quizás sí) sino por la animación en tiempo real de las curvas sinuidales, que me pareció estupenda. Salute
__________________
La vida es lo suficientemente larga para que sucedan cosas y lo suficientemente corta para no esperar que vengan por si solas. http://resources.blogscopia.com - Modelos 3D gratuitos http://infoarquitectura.scopia.es |
|
|
|
|
|
#12 |
|
DMDBB
|
Tetas... curvas sinuidales... hmmm...
¡Ah!, bonito script... |
|
|
|
|
|
#13 |
|
master en cocktails
Fecha de Ingreso: junio-2005
Ubicación: en la terraza
Mensajes: 12,314
|
no he entendido nada
bueno, lo de las tetas de molok me suena |
|
|
|
|
|
#14 |
|
12 meses, 12 pagas
Fecha de Ingreso: julio-2005
Ubicación: Bajo el sol monegrino
Mensajes: 4,946
|
Tintin, te lo envío al teleline con una versión del euskoncesto, para cuando te aburras.
Tios, sólo pensais en sinusoides... Cuando lo que de verdad mola son las parábolas. Las cosas que me haceis hacer...
__________________
Y sus discípulos le preguntaron, diciendo: ¿Qué significa esta parábola? Y él dijo: A vosotros os es dado conocer los misterios del reino de Dios; pero a los otros por parábolas, para que viendo no vean, y oyendo no entiendan. Mateo 8, 9-10 |
|
|
|
|
|
#15 |
|
Administrador
Fecha de Ingreso: abril-2002
Ubicación: 28.10º N 15.43º W in a blue planet.
Mensajes: 16,904
|
Esa captura no es de tetas, es un culo... que también molan (de hembra, por si acaso)
__________________
Obtén enseñanza tradicional en arte y cine. Los ordenadores solo son herramientas. Ellos no pueden tomar decisiones creativas, y solo pueden crear trabajos tan buenos como tus conocimientos y tu experiencia les permita. Victor Navone |
|
|
|
![]() |
| Usuarios activos actualmente viendo este tema: 1 (0 miembros y 1 visitantes) | |
| Herramientas | |
|
|
|
|