Categories
Cursos

Ejercicios Processing #3

Clase nº4 (17.feb) >> (descargar aquí):

  • He cambiado el fichero RAR con los ejercicios del Dia04 (he añadido el mini-editor de texto), así que descargadlo de nuevo.
  • En el ejercicio E07 probad a cambiar las imágenes del fondo y del mouse usando las que hay en la carpeta data o bien con otras vuestras. Revisad los comandos de imagen en la ayuda (PImage, loadImage(), image() y tint())
  • En el ejercicio E08 probad con otros tipos de letra creados por vosotros (menú Tools>Create font…) y revisad también los comandos correspondientes (PFont, loadFont(), textFont(), textAlign(), textLeading() y text())
  • El ejercicio E09, el mini-editor de textos, es susceptible de muchas mejoras. ¿Se os ocurre alguna?
  • Los ejercicios E10 sobre arrays tomadlos sólo como una toma de contacto con el tema. Lo desarrollaremos en profundidad llegado el momento.

Clase nº5 (24.feb) >> (descargar aquí):

  • También está subido el RAR con los ejercicios para el próximo martes día 24.
  • Primero aprenderemos a mover cosas. Los ejercicios E11 contienen ejemplos que aclaran algunos puntos importantes (translate() y rotate() sueltos o agrupados dentro de pushMatrix() y popMatrix()).
  • Si lo que hay que mover son muchas cosas, hacerlo una a una resultaría muy tedioso. Para mejorarlo trabajaremos con arrays de objetos (definidos mediante una ‘clase’) , facilitando la escritura del programa. En lugar de mover unas pocas flechas como en los ejercicios E12 podemos mover cientos de ellas a la vez usando las citadas ‘clases’ (ver ejercicios E12). Probad a cambiar algunos datos, como por ejemplo el valor de la variable ‘total’ o la variable ‘rango’.
  • Los ejercicios E13 y E14 son otros ejemplos que podéis investigar.

Es mucho material y en el aula iremos viendo lo que podamos, pero ahí queda. Si revisáis los ejercicios antes de clase, apuntad vuestras dudas y las comentamos. Y es más que probable que necesitemos dos martes para ver todo esto con detalle, así que tranquilos.

Salud

Categories
Cursos

Ejercicios Processing #2

Actualización: podeis bajaros los ejercicios aquí (día 3).

Podéis descargar los ejercicios de todos los días anteriores y los de mañana día 17 de febrero. Veremos el manejo de imágenes y de tipos de letra, así como una introducción al uso de arrays.

De la semana pasada conviene analizar los sketches E04 y E06. Los comentaremos en clase. De lo nuevo, echad un vistazo a los E07 a E09b, y así avanzamos más deprisa en el aula.

Para la descarga, os remito al artículo “Ejercicios Processing #1.bis” del 4 de febrero.  //  Álvaro

Categories
Cursos

Ejercicios Processing #1.bis

Hola. Ya tengo un sitio FTP donde poner las cosas. Para acceder tenéis que abrir un navegador de internet y poner en la barra de direcciones lo siguiente: ftp://91.121.98.202

Cuando os pida usuario y contraseña le ponéis CECLEC y processing respectivamente (respetando mayúsculas y minúsculas). Veréis una carpeta que tiene unos ficheros rar que tienen los ejercicios que vamos haciendo en clase. En el futuro ya no escribiré el código aquí en el blog, como he hecho hace un rato en el artículo “Ejercicios Processing #1”, sino que directamente os los subiré al sitio ftp para que los bajéis. Si desde la escuela no podéis acceder a sitios ftp tendréis que hacerlo desde casa o desde algún otro lugar.

Un saludo y que disfrutéis.

Álvaro

Categories
Cursos

Ejercicios Processing #1

Actualización: Teneis los ejercicios haciendo click aquí (día 1) y aquí (día 2)

De momento, y a falta de otros canales más eficientes, os pongo aquí el código de los ejercicios que hemos visto en las dos primeras clases de processing (27 de enero y 3 de febrero).

Martes 27 de enero

1. una elipse sigue al ratón y va cambiando de tamaño entre un valor mínimo y un máximo:

Categories
Cursos

Curso Processing CECLEC 2008/2009

Hola.

En enero de 2009 empiezan las clases de Processing dentro del curso CECLEC 2008/2009. Según creo el primer día es el martes 27, y el bloque lectivo acabará antes de semana santa. Con este motivo comienzo a escribir en este blog los asuntos relacionados con el tema, y pretendo utilizarlo como vía de comunicación colocando aquí los contenidos asociados a la materia y vínculos a otros sitios donde obtener información y ampliar conocimientos.

El programa del curso se basa en el libro de Reas & Fry (creadores del proyecto Processing) llamado “Processing, a programming handbook for visual designers and artist”. Este libro y otros sobre el tema están en la biblioteca de la universidad. Los interesados y/o inscritos ya debéis tener el programa del curso, y si no es así podéis echarle un vistazo aquí.

Para una información exhaustiva sobre Processing lo mejor es visitar la página web oficial (en inglés) http://www.processing.org

A finales de noviembre publicaron la primera versión “estable” de Processing (hasta el momento todo eran versiones “beta”). El día 24 salió la 1.0 y el día 29 salió la revisión 1.0.1. Se pueden descargar en la página web indicada anteriormente.

El software no se instala, sino que sencillamente se copia en una carpeta del disco duro (después de descomprimir el archivo zip de la descarga) y luego basta crear en el escritorio un acceso directo al fichero ejecutable processing.exe. Trae bastantes ejemplos para curiosear coger ideas. Echadles un vistazo!

Seguiremos informado.

VITO

Categories
Cursos

SunSurfaceSplit

 

Os subimos el script para utilizar la inclinación del sol como parámetro que explicamos en la última clase

 

 

‘Script written by Miguel Mesa

‘Script copyrighted by {LAC}

‘Script version martes, 26 de agosto de 2008 3:18:07

 

Call SunSurfaceSplit()

Sub SunSurfaceSplit()

Dim strSurfaceID : strSurfaceID = Rhino.GetObject(“Selecciona una Superficie”, 8, True, True)

Dim strDirSolID: strDirSolID = Rhino.GetObject(“Selecciona Dirección del Sol”, 4, True, True)

If IsNull (strSurfaceID) Then Exit Sub

If IsNull (strDirSolID) Then Exit Sub

Dim intCount1 : intCount1 = Rhino.GetInteger(“¿Número de Frames en u?”, 10, 2, 2000)

If IsNull(inCount) Then Exit Sub

Dim intCount2 : intCount2 = Rhino.GetInteger(“¿Número de Frames en v?”, 10, 2, 2000)

Dim uDomain : uDomain = Rhino.SurfaceDomain(strSurfaceID, 0)

Dim vDomain : vDomain = Rhino.SurfaceDomain(strSurfaceID, 1)

Dim uStep : uStep = (uDomain(1) – uDomain(0))/intCount1

Dim vStep : vStep = (vDomain(1) – vDomain(0))/intCount2

Dim u, v

Dim pt

Dim srfFrame

Call Rhino.EnableRedraw(False)

For u = uDomain(0) To uDomain(1) Step uStep

For v = vDomain(0) To vDomain(1) Step vStep

pt = Rhino.EvaluateSurface(strSurfaceID, Array(u, v))

If Rhino.Distance(pt, Rhino.BrepClosestPoint(strSurfaceID, pt)(0)) < 0.1 Then

srfFrame = Rhino.SurfaceFrame(strSurfaceID, Array(u, v))

Dim VectorPerp : VectorPerp = Rhino.SurfaceNormal(strSurfaceID, Array(u, v))

VectorPerp = Rhino.VectorScale(VectorPerp, 10)

Dim ExtrudePath : ExtrudePath = Rhino.AddLine(pt,Rhino.VectorAdd(pt,VectorPerp))

Dim A : A = Rhino.CurveStartPoint(strDirSolID)

Dim B : B = Rhino.CurveEndPoint(strDirSolID)

Dim C : C = Pt

Dim D : D = Rhino.CurveEndPoint(ExtrudePath)

‘Dim VSol : VSol = Rhino.VectorCreate(A, B)

Dim dblAngulo : dblAngulo = Rhino.Angle2(array(A,B), array(C,D))

 

 

Dim Circle : Circle = Rhino.AddCircle(srfFrame,0.01*dblAngulo(0))

Dim Cilindro : Cilindro = Rhino.ExtrudeCurve(Circle,ExtrudePath)

Dim CilindroMoved : CilindroMoved = Rhino.MoveObject(Cilindro, pt, Rhino.VectorSubtract(pt, Rhino.VectorDivide(VectorPerp, 2)))

 

Dim SplitBrep : SplitBrep = Rhino.SplitBrep(strSurfaceID, CilindroMoved, True)

If Not IsNull (SplitBrep(0)) Then

strSurfaceID = SplitBrep(0)

Call Rhino.DeleteObject(SplitBrep(1))

End If

Call Rhino.DeleteObject(CilindroMoved)

Call Rhino.DeleteObject(Circle)

Call Rhino.DeleteObject(ExtrudePath)

End If

Next

Next

Call Rhino.EnableRedraw(True)

End Sub

Categories
Cursos

Suavizar políneas

Este es el Script para suavizar polilíneas:

Option Explicit
‘Script para suavizar polilíneas y hacer un offset de las mismas
Call SuavizarPolilineas()
Sub SuavizarPolilineas()
Dim arrCrvs,strCrv, arrPoints,arrPoint
Dim K,i,arrNPt,hh,kk, Offset, Degree
arrCrvs = Rhino.GetObjects(“Select curves”, 4)
Offset = Rhino.GetReal(“Offset?”)
Degree = Rhino.GetReal(“Degree?”,3,1,100)
If IsNull(arrCrvs) Then Exit Sub
ReDim arrCC(UBound(arrCrvs))
hh=0
For Each strCrv In arrCrvs
If Rhino.IsPolyline(strCrv) Then
arrPoints = Rhino.PolylineVertices(strCrv)
If IsArray(arrPoints) Then
k=UBound(arrPoints)
kk=(k+1)*2-2
ReDim arrNPt(kk)
Dim nn : nn=0
For i=1 To kk Step 2
arrNPt(i) = Array((arrPoints(nn)(0)+arrPoints(nn+1)(0))/2, (arrPoints(nn)(1)+arrPoints(nn+1)(1))/2, (arrPoints(nn)(2)+arrPoints(nn+1)(2))/2 )
nn=nn+1
Next
nn=0
For i=0 To kk Step 2
arrNPt(i) = arrPoints(nn)
nn=nn+1
Next
arrCC(hh) = Rhino.AddCurve (arrNPt ,Degree)
Dim arrCentro : arrCentro = Rhino.CurveAreaCentroid(arrCC(hh))
Call Rhino.OffsetCurve(arrCC(hh), arrCentro(0), Offset)
hh=hh+1
End If
End If
Next

Rhino.SelectObjects arrCC

Rhino.DeleteObjects arrCC

Rhino.DeleteObjects arrCrvs

End Sub