Gracias Gracias:  0
Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 al 15 de 26

Tema: Matemats

  1. #1
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    7,988

    Blender Matemats

    Matemats, el script multifamoso para crear (de momento) curvas paramétricas, tiene nueva versión. Y aquí esta, la lista de fetaúres es inmesa, como puede comprobarse:
    • Curvas 3D en coordenadas cartesianas
    • Curvas 3D en coordenadas cilíndricas (polares)
    • Uso de parámetros: A, B, C... ¡hasta E!
    • Curvas predefindas, lo que en lenguaje técnico se denomina presetes.


    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 información for Blender menus:
    Name: 'Matemats'
    Blender: 246
    Group: 'AddMesh'
    Tip: 'Represents math functions'
    """
    __versión__=1.25
    #!BPY
    
    """ Registration información for Blender menus:
    Name: 'Matemats'
    Blender: 246
    Group: 'AddMesh'
    Tip: 'Represents math functions'
    """
    __versión__=1.25
    __author__ = 'Klopes'
    __versión__ = '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,[]],
    ['Blak 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,"Número de segmentos")
    	Salto=Number("Segmts lenght=",3,10,37,205,18,Salto.val,.000001,abs(Ext1.val-Ext0.val),"Separacion entre vértices")
    	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.,"Parámetro A")
    	b = Number("",4,238,60,60,18,b.val,-10000.,10000.,"Parámetro B")
    	c = Number("",4,238,42,60,18,c.val,-10000.,10000.,"Parámetro C")
    	d = Number("",4,238,24,60,18,d.val,-10000.,10000.,"Parámetro D")
    	e = Number("",4,238,6,60,18,e.val,-10000.,10000.,"Parámetro 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)
    Miniaturas adjuntadas Miniaturas adjuntadas Matemats-matemats.jpg  
    Última edición por Klópes; 26-05-2008 a las 16:36
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  2. #2
    Administrador Avatar de SHAZAM
    Fecha de ingreso
    Apr 2002
    Ubicación
    28.10º N 15.43º W in a blue planet.
    Mensajes
    20,761

    Re: Matemats

    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


    Ser "animador" es un regalo que te ganas y un honor que deben adjudicarte los otros.
    Chuck Jones


    La tecnología no hace las películas, la gente las hace. No eres un animador sólo porque puedas mover un objeto del punto A al punto B. Eres alguien quien le da vida a un personaje, que es algo que el software y la tecnología no puede dar.
    John Lasseter

  3. #3
    Senior Member
    Fecha de ingreso
    Dec 2003
    Mensajes
    2,415

    Re: Matemats

    Muy interesante .... muchas gracias!
    Un saludo.
    Cuiño, cuiiiiño!!!!

  4. #4
    Blendemoniado Avatar de GEKKONIDAE
    Fecha de ingreso
    Mar 2006
    Ubicación
    MÁLAGA
    Mensajes
    3,649

    Re: Matemats

    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)

    Corolario: "La cafeína es tu amiga"

  5. #5
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    7,988

    Re: Matemats

    Cita Iniciado por GEKKONIDAE Ver mensaje
    QUé hay que hacer?
    ¿pegar el scipt en la ventana de texto y dar "ENTER" o LOAD ""? XD
    Copia el texto en el editor de texto y grabalo como matemats.py en el directorio script
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  6. #6
    Senior Member
    Fecha de ingreso
    May 2005
    Ubicación
    Entre Zaragoza y Barcelona
    Mensajes
    552

    Re: Matemats

    no viene a cuento pero me encanta tu firma :P

    el script muy chulo y muy bonito por cierto
    Última edición por radimov; 26-05-2008 a las 20:26
    Yo no soy freaky soy mago de nivel 23

  7. #7
    BlenderAdicto Avatar de Caronte
    Fecha de ingreso
    Dec 2004
    Ubicación
    Valencia-España
    Mensajes
    14,691

    Re: Matemats

    Cita Iniciado por radimov Ver mensaje
    no viene a cuento pero me encanta tu firma :P
    Ahí, ahí!! Guerra a los pezones de "galleta maría"
    "Algún día todo será digital". Caronte.
    Mi web: NicoDigital.com

  8. #8
    Senior Member
    Fecha de ingreso
    May 2005
    Ubicación
    Entre Zaragoza y Barcelona
    Mensajes
    552

    Re: Matemats

    Cita Iniciado por Caronte Ver mensaje
    Ahí, ahí!! Guerra a los pezones de "galleta maría"
    campurrianas más bien
    Yo no soy freaky soy mago de nivel 23

  9. #9
    Viva Blender !!! Avatar de miguelito08
    Fecha de ingreso
    Apr 2006
    Ubicación
    República Dominicana
    Mensajes
    1,009

    Re: Matemats

    Cita Iniciado por Caronte Ver mensaje
    Ahí, ahí!! Guerra a los pezones de "galleta maría"
    No es cosa fácil ser amigo de una tía así
    Suerte

    Cita Iniciado por SHAZAM Ver mensaje
    la blenderitis de sus cada día más numerosos usuarios crea un efecto radio-bemba-tsunami que inunda todo

  10. #10
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    7,988

    Re: Matemats

    ¿Qué estais haciendo con mi hilo?
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  11. #11
    BlenderAdicto Avatar de 8tintin
    Fecha de ingreso
    Jun 2002
    Mensajes
    1,694

    Re: Matemats

    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

  12. #12
    Say 99 and kiss me Avatar de Molok
    Fecha de ingreso
    Dec 2004
    Ubicación
    MAD
    Mensajes
    5,734

    Re: Matemats

    Tetas... curvas sinuidales... hmmm...
    ¡Ah!, bonito script...
    [I]This sign intentionally left blank[/I

  13. #13
    soy un emigrante Avatar de Pit [reloaded]
    Fecha de ingreso
    Jun 2005
    Ubicación
    viendo bob esponja
    Mensajes
    16,804

    Re: Matemats

    no he entendido nada

    bueno, lo de las tetas de moloque me suena

  14. #14
    Moderador Avatar de Klópes
    Fecha de ingreso
    Jul 2005
    Ubicación
    Estuve el día que llovió en los Monegros
    Mensajes
    7,988

    Re: Matemats

    Tintin, te lo envío al teleline con una versión del euskoncesto, para cuando te aburras.

    Tíos, sólo pensáis en sinusoides...
    Cuando lo que de verdad mola son las parabolas.
    Las cosas que me hacéis hacer...
    Miniaturas adjuntadas Miniaturas adjuntadas Matemats-loqueayqueacerparateneroscontentos.jpg  
    ...y estaba superbueno.
    Y miré su perfil. Y vi que era amigo de Daniela. Puaf.


    Dos niñas en el parque

    no se elevará, nunca más

  15. #15
    Administrador Avatar de SHAZAM
    Fecha de ingreso
    Apr 2002
    Ubicación
    28.10º N 15.43º W in a blue planet.
    Mensajes
    20,761

    Re: Matemats

    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


    Ser "animador" es un regalo que te ganas y un honor que deben adjudicarte los otros.
    Chuck Jones


    La tecnología no hace las películas, la gente las hace. No eres un animador sólo porque puedas mover un objeto del punto A al punto B. Eres alguien quien le da vida a un personaje, que es algo que el software y la tecnología no puede dar.
    John Lasseter

Página 1 de 2 12 ÚltimoÚltimo

Actualmente estos son sus permisos de publicación en el foro.

  • -No puedes crear nuevos temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes responder temas al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes subir archivos adjuntos al no estar registrado o no haber iniciado sesión en el foro.
  • -No puedes editar tus mensajes al no estar registrado o no haber iniciado sesión en el foro.
  •