 |
 |
|
 |
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hola,
Estoy intentando poner esto de pié, pero no lo consigo, cuando toco el
"rotate" se me desplaza, pero no se me gira.
¿Cuál puede ser el problema?
#include "colors.inc"
#include "shapes.inc"
#include "stones.inc"
#include "textures.inc"
background { White }
camera {location <170, 11, -110> look_at <180, -15, -16> }
light_source { <170, -30, -100> color White}
===============My object===========
#declare Cuc =
blob {
threshold 0.2 // Això ho farà dens o prim.
sphere {
<0, 5, 0>, 2, 1
pigment { Red } }
scale 1
translate <190, -20, 0> no_shadow
}
===================================
=========The macro===================
#macro Make_Stuff (Stuff,How_Many)
#local Ample=-12;
#while (Ample<How_Many)
object{Stuff rotate <0,0*Ample,0> translate<3*Ample,11*cos
(Ample/8),0> }
#local Ample=Ample+1;
#end
#end
#declare layer = union {Make_Stuff (Cuc,-11)}
global_settings { max_trace_level 29 }
// Fi de Bicapa en una sola dimensio
//Bicapa en les dos dimensions del pla de la membrana.
#macro Make_Many (Stuff,How_Many)
#local Fons=0;
#while (Fons<How_Many)
object{Stuff translate <0,5*sin (Fons/8),3*Fons>}
#local Fons=Fons+1;
#end
#end
// Incrementar el nombre de bicapes unidimensionals per a fer una membrana
mes fonda. 50 molecules de lipid de fons funciona be, 72 amb el
max_trace_level a 32 també. Parsing més lent!!!!
union {Make_Many (layer,10)}
global_settings { max_trace_level 32 }
================================
Muchas gracias,
Oleguer
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Bon dia Oleguer:
¿Te refieres a esta sentencia?
> object{Stuff rotate <0,0*Ample,0> translate<3*Ample,11*cos
Si es asi, 0*Ample va a ser siempre 0.... :)
--
Jaime
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Sí, yo he creado este macro, pero lo que quiero es poner esto recto, mirando
hacia arriba y eso es lo que no se hacer.
object{Stuff rotate <0,0*Ample,0>translate<3*Ample,11*cos
Saludos,
Oleguer
"Jaime Vives Piqueres" <jai### [at] ignorancia org> escribió en el mensaje
news:41342095$1@news.povray.org...
> Bon dia Oleguer:
>
> ¿Te refieres a esta sentencia?
>
> > object{Stuff rotate <0,0*Ample,0> translate<3*Ample,11*cos
>
> Si es asi, 0*Ample va a ser siempre 0.... :)
>
> --
> Jaime
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Oleguer Vilella pitufó en el mensaje de noticias
41342c84$1@news.povray.org...
> bla, bla, bla...
Hola,
No estoy muy seguro de que es lo que quieres conseguir, así que tampoco se
si el fichero que te adjunto te servirá de ayuda.
Parece que quieras conseguir que un objeto construido con blobs aparezca
como una linea vertical frente a la cámara. Pues bien, no te servirá usar
dos, tres o más blobs para conseguirlo, pues en Pov-Ray no "se pegan" unos
blobs a otros, sino que lo que se "pegan" son las esferas de que estan
compuestos.
Si lo que quieres es crear una membrana modifica el ejemplo que te mando
para anidar un bucle dentro de otro, y tendrás el resultado apropiado
Saludos...
B. Gimeno
Post a reply to this message
Attachments:
Download 'blob_demo.pov.txt' (2 KB)
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Bueno, yo lo que quiero es mi escena, tal como está, pero ponerla de pié,
mirando hacia arriba, vertical. No quiero pegarlo ni hacer una membrana
(olvida lo de "layer") sólo quiero hacer eso.
Muchas gracias,
Oleguer Vilella
"B. Gimeno" <nos### [at] jazzfree com> escribió en el mensaje
news:4134772b@news.povray.org...
>
> Oleguer Vilella pitufó en el mensaje de noticias
> 41342c84$1@news.povray.org...
> > bla, bla, bla...
>
> Hola,
> No estoy muy seguro de que es lo que quieres conseguir, así que tampoco se
> si el fichero que te adjunto te servirá de ayuda.
> Parece que quieras conseguir que un objeto construido con blobs aparezca
> como una linea vertical frente a la cámara. Pues bien, no te servirá usar
> dos, tres o más blobs para conseguirlo, pues en Pov-Ray no "se pegan" unos
> blobs a otros, sino que lo que se "pegan" son las esferas de que estan
> compuestos.
> Si lo que quieres es crear una membrana modifica el ejemplo que te mando
> para anidar un bucle dentro de otro, y tendrás el resultado apropiado
>
> Saludos...
> B. Gimeno
>
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Claro, es que tu secuencia se puede rotar sin ningún problema, en cambio la
mía no. ¿Podría ser que al creado el macro como si fuera ha hacer una
membrana no me deje?
En ese caso entiendo que no se pueda rotar.
Saludos,
Oleguer
"B. Gimeno" <nos### [at] jazzfree com> escribió en el mensaje
news:4134772b@news.povray.org...
>
> Oleguer Vilella pitufó en el mensaje de noticias
> 41342c84$1@news.povray.org...
> > bla, bla, bla...
>
> Hola,
> No estoy muy seguro de que es lo que quieres conseguir, así que tampoco se
> si el fichero que te adjunto te servirá de ayuda.
> Parece que quieras conseguir que un objeto construido con blobs aparezca
> como una linea vertical frente a la cámara. Pues bien, no te servirá usar
> dos, tres o más blobs para conseguirlo, pues en Pov-Ray no "se pegan" unos
> blobs a otros, sino que lo que se "pegan" son las esferas de que estan
> compuestos.
> Si lo que quieres es crear una membrana modifica el ejemplo que te mando
> para anidar un bucle dentro de otro, y tendrás el resultado apropiado
>
> Saludos...
> B. Gimeno
>
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Ahora lo estoy intentando doblar, pero tampoco lo consigo...
El codigo es:
==================================
#macro Cuc (How_many_blobs,Ampl,xFreq,xCnt,xNr,zFreq,zCnt,zNr)
#local HM_Blobs_remanente = How_many_blobs ;
#local yPos =
Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
blob {
threshold .6
#while (HM_Blobs_remanente>0)
sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
#local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
#end
scale 0.5
pigment { Gray*0.75 }
finish { phong .4 }
}
#end
object { Cuc (8, 100, 0, 2, 2, 4, 5, 5) rotate z*105 translate <-8, -5,
> }
#declare Amplitude=20;
===============================
Supongo que me deben faltar varios parámetros para definir.
Saludos,
Oleguer
"Oleguer Vilella" <ole### [at] infonegocio com> escribió en el mensaje
news:4134b065@news.povray.org...
> Claro, es que tu secuencia se puede rotar sin ningún problema, en cambio
la
> mía no. ¿Podría ser que al creado el macro como si fuera ha hacer una
> membrana no me deje?
> En ese caso entiendo que no se pueda rotar.
>
> Saludos,
> Oleguer
>
> "B. Gimeno" <nos### [at] jazzfree com> escribió en el mensaje
> news:4134772b@news.povray.org...
> >
> > Oleguer Vilella pitufó en el mensaje de noticias
> > 41342c84$1@news.povray.org...
> > > bla, bla, bla...
> >
> > Hola,
> > No estoy muy seguro de que es lo que quieres conseguir, así que tampoco
se
> > si el fichero que te adjunto te servirá de ayuda.
> > Parece que quieras conseguir que un objeto construido con blobs aparezca
> > como una linea vertical frente a la cámara. Pues bien, no te servirá
usar
> > dos, tres o más blobs para conseguirlo, pues en Pov-Ray no "se pegan"
unos
> > blobs a otros, sino que lo que se "pegan" son las esferas de que estan
> > compuestos.
> > Si lo que quieres es crear una membrana modifica el ejemplo que te mando
> > para anidar un bucle dentro de otro, y tendrás el resultado apropiado
> >
> > Saludos...
> > B. Gimeno
> >
> >
> >
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
He intentado con esto... No sé si estará muy mal, pero no consigo verlo.
El código es:
=================================
camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9, 0> }
light_source { <-5, 2, -15> color rgb <2, 2, 2> }
light_source { <10, 2, 0.> color rgb <1, 1, 1> }
background { color White }
===============================
#macro Cuc (How_many_blobs,xSpc, zSpc, xNr, zNr, xFreq, zFreq, Ampl)
#local HM_Blobs_remanente = How_many_blobs ;
#local xStart = -xNr/2*xSpc;
#local zStart = -zNr/2*zSpc;
#local xCnt = 2.9;
#while (xCnt < xNr)
#local zCnt = 4;
#while (zCnt < zNr)
#local xPos = xStart + xCnt*xSpc;
#local yPos =
Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
#local zPos = zStart + zCnt*zSpc;
object {
How_many_blobs
translate <xPos, yPos, zPos>
rotate 18*x
}
#local zCnt = zCnt + 1;
#end // while
#local xCnt = xCnt + 1;
#end // while
blob {
threshold .6
#while (HM_Blobs_remanente>0)
sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
#local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
#end
scale 0.5
pigment { Gray*0.75 }
finish { phong .4 }
}
#declare Ampl=-5;
object { Cuc (8,0) rotate z*105 translate <-8, -5, 0> }
#end
==================================
Si alguno puede ayudarme. Muchas gracias.
Saludos,
Oleguer
"Oleguer Vilella" <ole### [at] infonegocio com> escribió en el mensaje
news:4134eb50@news.povray.org...
> Ahora lo estoy intentando doblar, pero tampoco lo consigo...
>
> El codigo es:
> ==================================
> #macro Cuc (How_many_blobs,Ampl,xFreq,xCnt,xNr,zFreq,zCnt,zNr)
> #local HM_Blobs_remanente = How_many_blobs ;
>
> #local yPos =
> Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
>
> blob {
> threshold .6
> #while (HM_Blobs_remanente>0)
>
> sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
>
> #local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
>
> #end
> scale 0.5
> pigment { Gray*0.75 }
> finish { phong .4 }
> }
> #end
>
> object { Cuc (8, 100, 0, 2, 2, 4, 5, 5) rotate z*105 translate <-8, -5,
> > }
>
> #declare Amplitude=20;
> ===============================
> Supongo que me deben faltar varios parámetros para definir.
>
> Saludos,
> Oleguer
>
> "Oleguer Vilella" <ole### [at] infonegocio com> escribió en el mensaje
> news:4134b065@news.povray.org...
> > Claro, es que tu secuencia se puede rotar sin ningún problema, en cambio
> la
> > mía no. ¿Podría ser que al creado el macro como si fuera ha hacer una
> > membrana no me deje?
> > En ese caso entiendo que no se pueda rotar.
> >
> > Saludos,
> > Oleguer
> >
> > "B. Gimeno" <nos### [at] jazzfree com> escribió en el mensaje
> > news:4134772b@news.povray.org...
> > >
> > > Oleguer Vilella pitufó en el mensaje de noticias
> > > 41342c84$1@news.povray.org...
> > > > bla, bla, bla...
> > >
> > > Hola,
> > > No estoy muy seguro de que es lo que quieres conseguir, así que
tampoco
> se
> > > si el fichero que te adjunto te servirá de ayuda.
> > > Parece que quieras conseguir que un objeto construido con blobs
aparezca
> > > como una linea vertical frente a la cámara. Pues bien, no te servirá
> usar
> > > dos, tres o más blobs para conseguirlo, pues en Pov-Ray no "se pegan"
> unos
> > > blobs a otros, sino que lo que se "pegan" son las esferas de que estan
> > > compuestos.
> > > Si lo que quieres es crear una membrana modifica el ejemplo que te
mando
> > > para anidar un bucle dentro de otro, y tendrás el resultado apropiado
> > >
> > > Saludos...
> > > B. Gimeno
> > >
> > >
> > >
> >
> >
>
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Oleguer, lo siento, pero no entiendo nada....
> El código es:
> =================================
> camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9, 0> }
> light_source { <-5, 2, -15> color rgb <2, 2, 2> }
> light_source { <10, 2, 0.> color rgb <1, 1, 1> }
> background { color White }
> ===============================
Tras poner // delante de las lineas de guiones y añadir "#include
colors.inc", parece que traza...
> #macro Cuc (How_many_blobs,xSpc, zSpc, xNr, zNr, xFreq, zFreq, Ampl)
> #local HM_Blobs_remanente = How_many_blobs ;
>
> #local xStart = -xNr/2*xSpc;
> #local zStart = -zNr/2*zSpc;
>
> #local xCnt = 2.9;
> #while (xCnt < xNr)
> #local zCnt = 4;
> #while (zCnt < zNr)
> #local xPos = xStart + xCnt*xSpc;
> #local yPos =
> Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
> #local zPos = zStart + zCnt*zSpc;
> object {
> How_many_blobs
Un momento... How_many_blobs no es un numero? O es un objeto? Ademas,
no puedes devolver multiples objetos desde una macro, bederias
agruparlos en una union.
> translate <xPos, yPos, zPos>
> rotate 18*x
> }
> #local zCnt = zCnt + 1;
> #end // while
> #local xCnt = xCnt + 1;
> #end // while
>
> blob {
> threshold .6
> #while (HM_Blobs_remanente>0)
>
> sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
>
> #local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
>
> #end
> scale 0.5
> pigment { Gray*0.75 }
> finish { phong .4 }
> }
...me parece que la macro deberia de acabar aqui.
> #declare Ampl=-5;
> object { Cuc (8,0) rotate z*105 translate <-8, -5, 0> }
> #end
Te has dejado la llamada y parte del codigo de la escena dentro de la
macro, ya que el #end de la macro es la ultima linea. Ademas, has
definido la macro Cuc() con muchos mas parametros de los dos que
utilizas en la llamada. Pero como te la has dejado dentro de la macro no
llega a ejecutarse nunca y no da error... por eso lo unico que te esta
renderizando es lo que hay antes de la macro: las luces y el fondo.
Me parece que deberias de aprender bien como funcionan las macros
antes de intentar escenas complejas. Te recomiendo seguir el tutorial
incluido en el manual. Recuerda que tenemos traduccion al castellano...
Saludos...
--
Jaime
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Sí, mira Jaime, aquí lo verás más claro.
=================================
#include "colors.inc"
#include "textures.inc"
camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9, 0> }
light_source { <-5, 2, -15> color rgb <2, 2, 2> }
light_source { <10, 2, 0.> color rgb <1, 1, 1> }
background { color White }
#macro Cuc (How_many_blobs)
#local HM_Blobs_remanente = How_many_blobs ;
blob {
threshold .6
#while (HM_Blobs_remanente>0)
sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
#local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
#end
scale 0.5
pigment { Gray*0.75 }
finish { phong .4 }
}
#end
object { Cuc (8) rotate z*105 translate <-8, -5, 0> }
=================================
Lo que decía es doblar esto como si fuera un puente, pero sólo doblarlo del
medio y que los extremos me queden planos. Quiza algo como esto:
#local yPos =
Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
Pero supongo que esto me lo va a doblar entero.
Muchas gracias,
Oleguer
http://www.infonegocio.com/oleguervm
"Jaime Vives Piqueres" <jai### [at] ignorancia org> escribió en el mensaje
news:4135be01$1@news.povray.org...
> Oleguer, lo siento, pero no entiendo nada....
>
> > El código es:
> > =================================
> > camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9,
0> }
> > light_source { <-5, 2, -15> color rgb <2, 2, 2> }
> > light_source { <10, 2, 0.> color rgb <1, 1, 1> }
> > background { color White }
> > ===============================
>
> Tras poner // delante de las lineas de guiones y añadir "#include
> colors.inc", parece que traza...
>
> > #macro Cuc (How_many_blobs,xSpc, zSpc, xNr, zNr, xFreq, zFreq, Ampl)
> > #local HM_Blobs_remanente = How_many_blobs ;
> >
> > #local xStart = -xNr/2*xSpc;
> > #local zStart = -zNr/2*zSpc;
> >
> > #local xCnt = 2.9;
> > #while (xCnt < xNr)
> > #local zCnt = 4;
> > #while (zCnt < zNr)
> > #local xPos = xStart + xCnt*xSpc;
> > #local yPos =
> > Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
> > #local zPos = zStart + zCnt*zSpc;
> > object {
> > How_many_blobs
>
> Un momento... How_many_blobs no es un numero? O es un objeto? Ademas,
> no puedes devolver multiples objetos desde una macro, bederias
> agruparlos en una union.
>
> > translate <xPos, yPos, zPos>
> > rotate 18*x
> > }
> > #local zCnt = zCnt + 1;
> > #end // while
> > #local xCnt = xCnt + 1;
> > #end // while
> >
> > blob {
> > threshold .6
> > #while (HM_Blobs_remanente>0)
> >
> > sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
> >
> > #local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
> >
> > #end
> > scale 0.5
> > pigment { Gray*0.75 }
> > finish { phong .4 }
> > }
>
> ...me parece que la macro deberia de acabar aqui.
>
>
> > #declare Ampl=-5;
> > object { Cuc (8,0) rotate z*105 translate <-8, -5, 0> }
> > #end
>
> Te has dejado la llamada y parte del codigo de la escena dentro de la
> macro, ya que el #end de la macro es la ultima linea. Ademas, has
> definido la macro Cuc() con muchos mas parametros de los dos que
> utilizas en la llamada. Pero como te la has dejado dentro de la macro no
> llega a ejecutarse nunca y no da error... por eso lo unico que te esta
> renderizando es lo que hay antes de la macro: las luces y el fondo.
>
> Me parece que deberias de aprender bien como funcionan las macros
> antes de intentar escenas complejas. Te recomiendo seguir el tutorial
> incluido en el manual. Recuerda que tenemos traduccion al castellano...
>
> Saludos...
>
> --
> Jaime
>
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|  |
|
 |
Hola, qué tal. Supongo que quieres que parezca un gusano. Prueba esto a ver
qué tal ;) (he cogido la fórmula de una curva de agnesi, del sitio de P.
Bourke):
//Tu código
//--------------------------
#include "colors.inc"
#include "textures.inc"
camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9, 0> }
light_source { <-5, 2, -15> color rgb <2, 2, 2> }
light_source { <10, 2, 0.> color rgb <1, 1, 1> }
background { color White }
//===============================
//from P. Bourke's site
//x= 2tan(t), y=2cos(t)^2, -1.1<= t <= 1.1
//===============================
//mi solución
//----------------------------------
#macro Blob_Agnesi(finura)
#local tt= -1.1; #local tope= 1.1;
#while (tt <= tope)
sphere { <2*tan(tt),2*pow(cos(tt),2),0> 1 , 1 }
#local tt= tt+ finura;
#end
#end
//----------------
#macro Cuc(How_many_blobs)
#local HM_Blobs_remanente = How_many_blobs ;
#local finura= 2.2/HM_Blobs_remanente;
blob {
threshold .6
Blob_Agnesi(finura)
scale 0.5
pigment { Gray*0.75 }
finish { phong .4 }
}
#end
//elimino la rotación momentáneamente
object { Cuc (18) rotate z*105*0 translate <-8, -5, 0> }
Saludos,
Martín.
----- Mensaje original -----
De: "Oleguer Vilella" <ole### [at] infonegocio com>
Grupos de noticias: povray.international
Enviado: miércoles, 01 de septiembre de 2004 19:31
Asunto: Re: Doblar
> Sí, mira Jaime, aquí lo verás más claro.
> =================================
> #include "colors.inc"
> #include "textures.inc"
>
> camera { location <0, 0, -23> look_at <0, 0, 0> focal_point <-15, -9, 0> }
> light_source { <-5, 2, -15> color rgb <2, 2, 2> }
> light_source { <10, 2, 0.> color rgb <1, 1, 1> }
> background { color White }
>
>
> #macro Cuc (How_many_blobs)
> #local HM_Blobs_remanente = How_many_blobs ;
>
> blob {
> threshold .6
> #while (HM_Blobs_remanente>0)
>
> sphere { <0, HM_Blobs_remanente*1.2 ,0> 1 , 1 }
>
> #local HM_Blobs_remanente = HM_Blobs_remanente-1 ;
>
> #end
> scale 0.5
> pigment { Gray*0.75 }
> finish { phong .4 }
> }
> #end
>
> object { Cuc (8) rotate z*105 translate <-8, -5, 0> }
> =================================
> Lo que decía es doblar esto como si fuera un puente, pero sólo doblarlo
del
> medio y que los extremos me queden planos. Quiza algo como esto:
> #local yPos =
> Ampl*sin(xFreq*xCnt/xNr*2*pi)*cos(zFreq*zCnt/zNr*2*pi);
> Pero supongo que esto me lo va a doblar entero.
>
> Muchas gracias,
> Oleguer
> http://www.infonegocio.com/oleguervm
Post a reply to this message
|
 |
|  |
|  |
|
 |
|
 |
|  |
|
 |