Matemats: Nueva versión del script para crear curvas paramétricas 2D y 3D

Klópes - 26/05/2008 15:28
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:


🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73959


Es un script de tipo addmesh, lo qué significa que se accede a el con espacio-> add>Mesh>matemats.

El script perrea así:
[code]#.Bpy.

Registration información for Blender menús:
Name: matemats.

Blender: 246.

Group: addmesh.

Tip: represents math functions.
_versión__=1.25.
#.Bpy.

Registration información for Blender menús:
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://Klópes, tk, Blender, elysiun"].
_email__ = [klopes, Klópes@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, val treturn (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, val treturn (eval(fun1.val+*cos(t)), eval(fun1.val+*sin(t)), eval(fun3.val)).

Presets=[1.
[identity 1:1,t,t,0,-1,1,100,[].
[elipse, 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 + eh, 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) ttry:
Pass texcept:
Blender. Draw. Pupmenu (revisa el texto) return tif fentrytyp, val==1:
F=fcart telse:
F=fpolar tv0=nmesh. Vert(f(ex0)[0], f(ex0)[1], f(ex0)[2]) tme, vértices, append(v0) tfor i in range (n):
T=(i+1)*salto+ex0 v1=nmesh. Vert(f(t)[0], f(t)[1], f(t)[2]) me, addedge (v0, 1) me, vértices, append(v1) v0 = v1 tnmesh. Putraw(me, nombre).

Def texbuf():
Menutext, i=,0 tfor TX in Blender. Text. Get():
I+=1 menutext+=|+tx.name+%x+str(i) treturn menutext.

Def draw():
Global ext0,ext1,n,salto,nom,fun1,fun2,fun3,fentrytyp,vaya,fentrypreset tglobal auto, exprx, expry, exprz, a, b, c, d, e tbgl.glclearcolor(0.5, 0.5, 0.6, 1) tbgl.glcolor3f(1,1,1) tbgl.glclear(BGL. Gl_color_bufer_bit).
# fentrytyp=menú(entry type%t|cartesian function%x1|cylindric function%x2|text buffer%x3|file%x4, 98,216,142,87,18,fentrytyp, val) tfentrytyp=menú(entry type%t|cartesian function%x1|cylindric function%x2 98,216,142,87,18,fentrytyp, val) text0=number(inf =,2,13,79,100,18,ext0.val,-10000,10000,extremo inf, del intervalo) text1=number(sup =,2,112,79,100,18,ext1.val,-10000,10000,extremo sup, del intervalo) TN=number(# segmts,2,10,55,205,18,n.val,1,200001,número de segmentos) tsalto=number(segmts Lenght=,3,10,37,205,18,salto, val.000001, abs(ext1.val-ext0.val),separación entre vértices) tnom=string(obj name:, 98,10,165,205,18,nom, val,50) tif 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=menú(tx,10,216,122,87,18,fentrypreset, val) tif 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=menú(tx,10,216,122,87,18,fentrypreset, val) telif fentrytyp, val==3:
Buf=menú(select buffer%t+texbuf(),98,10,102,205,18,vaya, val) exprx = \n.join(blender. Text. Get()[vaya, val-1].aslines()) expry = \n.join(blender. Text. Get()[vaya, val-1].aslines()) exprz = \n.join(blender. Text. Get()[vaya, val-1].aslines()) tblender. Bgl.glrasterpos2i (226,84) ttext(a) tblender. Bgl.glrasterpos2i (226,66) ttext(b) tblender. Bgl.glrasterpos2i (226,4 ttext(c) tblender. Bgl.glrasterpos2i (226,30) ttext(d) tblender. Bgl.glrasterpos2i (226,12) ttext(e) ta = number(,4,238,78,60,18, a, val,-10000,10000,parámetro a) Tb = number(,4,238,60,60,18, b, val,-10000,10000,parámetro b) tc = number(,4,238,42,60,18, c, val,-10000,10000,parámetro c) TD = number(,4,238,24,60,18, d, val,-10000,10000,parámetro d) te = number(,4,238,6,60,18, val,-10000,10000,parámetro e) tauto = toggle (auto update,10,220,100,80,18, auto, val) tbutton(draw,1,10,5,170,2 tbutton(exit,99,185,7,30,22).

Def event(evt, al):
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] eh, val = pres[fentrypreset, val][7][4] except:
Pass tif evt==3:
N.val=(ext1.val-ext0.val)/salto, val tif 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) tif 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) tif evt==3:
Fentrypreset, val=0 tif evt==99:
Exit() tblender. Redraw().

Register(draw, event, bevent)[/code]

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #73959

SHAZAM - 26/05/2008 16:19
Para la saca, muchas gracias.
elGordo - 26/05/2008 16:47
Muy interesante, muchas gracias. Un saludo.
GEKKONIDAE - 26/05/2008 16:50
Qué hay que hacer? ¿Pegar el script en la ventana de texto y dar enter o load?
Klópes - 26/05/2008 16:53

Qué hay que hacer? ¿Pegar el script en la ventana de texto y dar enter o load?

Copia el texto en el editor de texto y grábalo como matemats, py en el directorio script .
radimov - 26/05/2008 19:50
No viene a cuento, pero me encanta tu firma el script muy chulo y muy bonito por cierto.
Caronte - 26/05/2008 22:02

No viene a cuento, pero me encanta tu firma.

Ahí, ahí. Guerra a los pezones de galleta María.
radimov - 26/05/2008 22:13

Ahí, ahí. Guerra a los pezones de galleta María.

Campurrianas más bien.
miguelito08 - 26/05/2008 22:50

Ahí, ahí. Guerra a los pezones de galleta María.

No es cosa fácil ser amigo de una tía así.
Klópes - 26/05/2008 23:02
¿Qué estáis haciendo con mi hilo?
8tintin - 27/05/2008 01:43
Vaya que 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. Saludos.
Molok - 27/05/2008 08:03
Tetas, curvas sinuidales. Vaya, bonito script.
Pit [reloaded] - 27/05/2008 09:07
No he entendido nada. Bueno, lo de las tetas de Molok me suena.
Klópes - 27/05/2008 09:50
Tintin, te lo envío al teleline con una versión del euskonc esto, para cuando te aburras. Tíos, sólo pensáis en sinusoides.

Cuando lo que de verdad mola son las parábolas.

Las cosas que me hacéis hacer.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #74023

SHAZAM - 27/05/2008 10:57
Esa captura no es de tetas, es un culo, que también molan (de hembra, por si acaso).
Klópes - 27/05/2008 12:05

Esa captura no es de tetas, es un culo, que también molan (de hembra, por si acaso).

Mira que eres tiquismiquis. La última.

-- IMÁGENES ADJUNTAS --

🖼️

Estamos trabajando para mostrar las imágenes del foro

Adjunto #74041

Basie - 27/05/2008 12:07
No, si al final voy a tener que probar el script.
Pit [reloaded] - 27/05/2008 12:12
Los de Blender sí que saben. Un script para hacer tetas y culos. Que aprenda Autodesk.
Molok - 27/05/2008 12:20

Los de Blender sí que saben. Un script para hacer tetas y culos. Que aprenda Autodesk.

Un script, un script. ¿y dónde queda el placer de hacerlas a mano?
Basie - 28/05/2008 02:35

Vaya que 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. Saludos.

Eso que dice Tintín suena muy interesante, podrías comentar un poco más al respecto o dar un enlace donde hables del tema?
Ahora me voy a sobar que son las mil, pero tengo pensado hacerte un par de preguntas sobre el uso que se le puede dar a Blender aparte del 3d, a ver si mañana te las puedo dejar por aquí.
Basie - 28/05/2008 16:55
Por cierto, si el segmentlenght lo pones a cero, el script peta, porque divide por 0. Posdata: por cierto klo, tienes callo en el dedo de poner comentarios ¿eh?
Klópes - 28/05/2008 18:58

Eso que dice Tintín suena muy interesante, podrías comentar un poco más al respecto o dar un enlace donde hables del tema?

Habla de la pasado Blendiberia en Castellón, yo en vez de Powerpoint uso blenderengines, o sea, proyectos del ge donde van apareciendo imágenes y letras y todo animado. Cuesta un poco más hasta que le coges el tranquilo, pero mola también más. En la última había unas bolas que se movían formando sinusoides con un script. Ya pondré cómo se hace.

Por cierto, si el segmentlenght lo pones a cero, el script peta, porque divide por 0.

Tiene aujeros por todas partes, es un script de esos personales, le voy añadiendo cosas, pero no le corrijo los fallos. Ya me pondré.

Posdata: por cierto klo, tienes callo en el dedo de poner comentarios ¿eh?

A veces estoy programando y me canso, y ahí están las almohadillas, para poner cosas después.

Edito: ah, lo dices porque no hay.
Mars Attacks - 28/05/2008 22:02
Pues a mí me gustan los pezones grandes (como dice Shazam, de tías, por si acaso). Bueno, en realidad me gusta todo tipo de pezón (de tías, por si acaso).

Y yo sólo pasaba por aquí para decir que otro fascinante e inusable script nada, en serio, me encantaría verlo aplicado en algún trabajo, a ver de que es capaz.
Klópes - 28/05/2008 22:37

Pues a mí me gustan los pezones grandes (como dice Shazam, de tías, por si acaso). Bueno, en realidad me gusta todo tipo de pezón (de tías, por si acaso).

Y yo sólo pasaba por aquí para decir que otro fascinante e inusable script nada, en serio, me encantaría verlo aplicado en algún trabajo, a ver de que es capaz.

No, si en el fondo es completamente inútil pero a veces sale alguna parábola.

El año que viene haré que haga superficies y entonces los ejemplos serán más interesantes.

Y al siguiente, como dice Molok, con la mano.
Molok - 30/05/2008 19:47
A ver si éste te inspira algo. [url]http://oppai, appspot.com/swf/oppai.swf[/url].
otisnet - 31/05/2008 19:43
Igual para modelar el gugemhaim(o como demonios se escriba) de Bilbao paramétricamente molaba este script. Solo es una idea superficial, no la toméis muy en serio.