Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > Bitacoras Programacion.com > Algoritmo para el cálulo de áreas
-Foros de debate

Bitacoras Programacion.com
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Algoritmo para el cálulo de áreas
Enviado por agosarat el día 14 de marzo de 2006

Hola, me gustaría saber si existe un algoritmo para el cálculo del área y el centro de gravedad de un polígono irregular conociendo sólo los vértices. No me importa el lenguaje de programación, lo podría traducir después.
Gracias

 
Re: Algoritmo para el cálulo de áreas
Enviado por simon el día 10 de mayo de 2006

!!!!!!!!!!!!!!!!!!!!!!!!!!!!cálculo de las áreas de cada elemento!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


write ( 15,* ) 'valores vector U'
do i=1,t
do j=1,3
u( i, j )=a ( b ( i, 2 ) , j ) - a ( b ( i ,1 ) , j )
enddo !!!!!j!!!!
enddo !!!!i!!!!
do i=1,t
write ( 15,* ) ( u ( i, j) ,j=1,3)
enddo


write ( 15,* ) 'valores vector V'
do i=1,t
do j=1,3
v( i, j )=a ( b ( i, 3 ) , j ) - a ( b ( i ,1 ) , j )
enddo !!!!!j!!!!
enddo !!!!i!!!!
do i=1,t
write ( 15,* ) ( v ( i, j), j=1,3)
enddo



write ( 15,* ) 'valores vector W'
do i=1,t
do j=1,3
w( i, j )=a ( b ( i, 3 ) , j ) - a ( b ( i ,2 ) , j )
enddo !!!!!j!!!!
enddo !!!!i!!!!
do i=1,t
write ( 15,* ) ( w ( i, j), j=1,3)
enddo



!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!cálculo del producto vectorial a x b!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

write ( 15,* ) 'cálculo vectorial'
j=1
do i=1,t
e ( i, j ) = ( u ( i , j+1 ) * v ( i , j + 2 ) - u ( i , j+2 ) * v ( i , j + 1 ))
enddo

j=2
do i=1,t
e ( i, j ) = ( u ( i , j+1 ) * v ( i , j ) - u ( i , j-1 ) * v ( i , j + 1 ))
enddo

j=3
do i=1,t
e ( i, j ) = ( u ( i , j-2 ) * v ( i , j -1 ) - u ( i , j-1 ) * v ( i , j-2 ))
enddo

do i=1,t
write ( 15,* ) ( e (i,j),j=1,3)
enddo


write ( 15,* ) 'modulo de vectores'
emod ( i )=0
do i=1,t
do j=1,3
emod ( i )=sqrt ( emod (i)+e(i,j)*e(i,j))
enddo
enddo

do i=1,t
write ( 15,*) 'areas de los elemntos'

do i=1,t
area(i)=emod(i)/2
enddo

total=0
do i=1,t
total=total+area(i)
enddo
write ( 15 ,* ) 'area total',total





close ( 15 )




return
end



subroutine centroides(Xcent,Ycent,Zcent,X1,X2,X3,Y1,Y2,Y3,Z1,Z2,Z3)






a1=X2-X1
a2=Y2-Y1
a3=Z2-Z1
b1=X3-X1
b2=Y3-Y1
b3=Z3-Z1
c1=X3-X1
c2=Y3-Y1
c3=Z3-Z1


u1=a2*b3-a3*b2
u2=a3*b1-a1*b3
u3=a1*b2-a2*b1

umod=sqrt(u1*u1+u2*u2+u3*u3)


area1=umod/2


atotal=area1

Xm1=(X1+X2+X3)/3
Ym1=(Y1+Y2+Y3)/3
Zm1=(Z1+Z2+Z3)/3



Xcent=(area1*Xm1+area2*Xm2)/atotal
Ycent=(area1*Ym1+area2*Ym2)/atotal
Zcent=(area1*Zm1+area2*Zm2)/atotal

return
end

 


Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network