Gracias Gracias:  0
Resultados 1 al 6 de 6

Tema: Calcular el area de la sombra que proyecta un modelo

  1. #1
    Miembro Nuevo
    Fecha de ingreso
    Dec 2006
    Mensajes
    3

    Calcular el area de la sombra que proyecta un modelo

    Saludos,

    tengo intención de hacer un programa que me calcule el área de la sombra que un edificio crea sobre el suelo a una determinada hora del dia.

    ¿Pensais que 3d studio max y alguna API me podrían ayudar?

    Tengo entendido que hay alguna aplicación que permite simular la luz en un determinado momento del día en cualquier parte del mundo.

    ¿Es cierto?

  2. #2
    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: Calcular el area de la sombra que proyecta un modelo

    Te pongo un sencillo script que calcula la posición del sol según fecha, hora, latitud y longitud. También te da el vector dirección: S=(x,y,z).
    Para calcular el área, dependerá lo difícil es hallar el área de la proyección del edificio sobre el plano perpendicular a S,y dividirla por el seno de 'altitude'. Si no me equivoco.

    #*********************
    # POSICIONAMIENTO DEL SOL RESPECTO A LA HORA SOLAR
    # -
    #*********************

    latitude = ...
    s_latitude = latitude * PI/180

    longitude = ...
    s_longitude = longitude * PI/180

    meridian = -2
    s_meridian = meridian * PI/180

    tsolar = 1 (el +GMT)
    hour = ...(0,...23)
    month = ... (1,2...12)
    day = ...(1,...31)

    #------------------------------------
    #/* Julian date (days into year) */
    #------------------------------------

    def jdate(month,day):
    mo_da = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
    return(mo_da[month-1] + day)

    #------------------------------------
    #/* solar time adjustment from Julian date */
    #------------------------------------

    def stadj(jd):
    return( 0.170 * sin( (4*PI/373) * (jd - 80) ) - 0.129 * sin( (2*PI/355) * (jd - ) + 12 * (s_meridian - s_longitude) / PI)

    #------------------------------------
    #/* solar declination angle from Julian date */
    #------------------------------------

    def sdec(jd):
    return( 0.4093 * sin( (2*PI/36 * (jd - 81) ) )

    #------------------------------------
    #/* solar altitude from solar declination and solar time */
    #------------------------------------

    def salt(sd, st):
    return( así( sin(s_latitude) * sin(sd) - cos(s_latitude) * cos(sd) * cos(st*(PI/12)) ) )

    #------------------------------------
    # /* solar azimuth from solar declination and solar time */
    #------------------------------------

    def sazi( sd, st):
    return( -atan2( cos(sd)*sin(st*(PI/12)), -cos(s_latitude)*sin(sd) - sin(s_latitude)*cos(sd)*cos(st*(PI/12)) ) )

    #------------------------------------
    # MAIN
    #------------------------------------

    jd = jdate(month, day)
    sd = sdec(jd)
    if tsolar == 1:
    st = hour
    else:
    st = hour + stadj(jd)

    altitude = salt(sd,st)
    azimuth = sazi(sd, st)
    print "local solar time",st
    print "altitude",altitude*180/PI
    print "azimuth",azimuth*180/PI

    print "x",-sin(azimuth)*cos(altitude)
    print "y",-cos(azimuth)*cos(altitude)
    print "z",sin(altitude)
    Última edición por Klópes; 04-01-2007 a las 15:32
    ...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

  3. #3
    Senior Member Avatar de TBC3D
    Fecha de ingreso
    Apr 2006
    Ubicación
    En mitad de un sueño
    Mensajes
    2,425

    Re: Calcular el area de la sombra que proyecta un modelo

    Hola, chicos....eso lo hace el max desde la versión 4 creo.

    tu le dices: España-Zaragoza a las 14:35 de la tarde y el tipo te coloca el sol clavaooo.eso eso?

    Saludos!

  4. #4
    Miembro Nuevo
    Fecha de ingreso
    Dec 2006
    Mensajes
    3

    Re: Calcular el area de la sombra que proyecta un modelo

    Cita Iniciado por Klópes Ver mensaje
    Te pongo un sencillo script que calcula la posición del sol según fecha, hora, latitud y longitud. También te da el vector dirección: S=(x,y,z).
    Para calcular el área, dependerá lo difícil es hallar el área de la proyección del edificio sobre el plano perpendicular a S,y dividirla por el seno de 'altitude'. Si no me equivoco.

    #*********************
    # POSICIONAMIENTO DEL SOL RESPECTO A LA HORA SOLAR
    # -
    #*********************

    latitude = ...
    s_latitude = latitude * PI/180

    longitude = ...
    s_longitude = longitude * PI/180

    meridian = -2
    s_meridian = meridian * PI/180

    tsolar = 1 (el +GMT)
    hour = ...(0,...23)
    month = ... (1,2...12)
    day = ...(1,...31)

    #------------------------------------
    #/* Julian date (days into year) */
    #------------------------------------

    def jdate(month,day):
    mo_da = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
    return(mo_da[month-1] + day)

    #------------------------------------
    #/* solar time adjustment from Julian date */
    #------------------------------------

    def stadj(jd):
    return( 0.170 * sin( (4*PI/373) * (jd - 80) ) - 0.129 * sin( (2*PI/355) * (jd - ) + 12 * (s_meridian - s_longitude) / PI)

    #------------------------------------
    #/* solar declination angle from Julian date */
    #------------------------------------

    def sdec(jd):
    return( 0.4093 * sin( (2*PI/36 * (jd - 81) ) )

    #------------------------------------
    #/* solar altitude from solar declination and solar time */
    #------------------------------------

    def salt(sd, st):
    return( así( sin(s_latitude) * sin(sd) - cos(s_latitude) * cos(sd) * cos(st*(PI/12)) ) )

    #------------------------------------
    # /* solar azimuth from solar declination and solar time */
    #------------------------------------

    def sazi( sd, st):
    return( -atan2( cos(sd)*sin(st*(PI/12)), -cos(s_latitude)*sin(sd) - sin(s_latitude)*cos(sd)*cos(st*(PI/12)) ) )

    #------------------------------------
    # MAIN
    #------------------------------------

    jd = jdate(month, day)
    sd = sdec(jd)
    if tsolar == 1:
    st = hour
    else:
    st = hour + stadj(jd)

    altitude = salt(sd,st)
    azimuth = sazi(sd, st)
    print "local solar time",st
    print "altitude",altitude*180/PI
    print "azimuth",azimuth*180/PI

    print "x",-sin(azimuth)*cos(altitude)
    print "y",-cos(azimuth)*cos(altitude)
    print "z",sin(altitude)
    gracias klopes, pero este script ¿para que aplicación es?

  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: Calcular el area de la sombra que proyecta un modelo

    editado porque soy así de chulo
    ...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
    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: Calcular el area de la sombra que proyecta un modelo

    Cita Iniciado por tirengarfio Ver mensaje
    gracias klopes, pero este script ¿para que aplicación es?
    Así a bote pronto, para ningúna. Es python, pero le he quitado las órdenes que acceden a objetos para que quede casi como seudocódigo, para algo tan específico como lo que pides no te puedo ayudar más, lo siento. Simplemente tienes que traducirlo al lenguaje de tu programa y adaptarlo.
    Como dice TBC3D, max ya tiene el calculo solar implementado, sólo tienes que acceder a la dirección del sol, ni siquiera necesitas ese script. La madre del cordero esta en lo que te he dicho después, que no es poco trabajo... siento no poder ayudarte más, suerte.
    ...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

Temas similares

  1. Rhinoceros Cómo calcular el volumen mínimo para esculpir modelo
    Por Architecto en el foro Modelado
    Respuestas: 2
    Último mensaje: 19-01-2015, 16:33
  2. Caja estupida que no proyecta sombra
    Por nuhar en el foro Render, Iluminación y Cámaras
    Respuestas: 2
    Último mensaje: 12-07-2012, 18:06
  3. Respuestas: 0
    Último mensaje: 25-05-2009, 18:26
  4. problema con la iluminacion que se proyecta sobre un objeto
    Por koelf en el foro Render, Iluminación y Cámaras
    Respuestas: 2
    Último mensaje: 15-10-2003, 17:18
  5. Proyecta sombras desde cero
    Por yurguen en el foro Render, Iluminación y Cámaras
    Respuestas: 1
    Último mensaje: 21-02-2003, 14:41

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.
  •