PDA

Ver la Versión Completa : crear una malla triangular


sarias24
18-11-2010, 17:39:16
hola a todos necesito ayuda en cuanto a una funcion que estoy realizando, el problema es el siguiente: La funcion consiste en que dada una nube de puntos, puntos que se encuentran en una tabla de una BD en access en la forma x, y, z, formar una red de triangulos donde los triangulos no deben cruzarse y deben ser lo mas equilateros posible, al final se debe obtener un fichero txt con los puntos separados por espacio. Ahora como puedo unir los puntos con lineas haciendo uso de un ciclo, es decir con origen y destino, y el destino de esa linea seria el origen de la siguiente, y asi sucesivamente hasta que este completa la triangulacion, espero que puedan ayudarme lo mas pronto posible, gracias de antemano salu2.

duilioisola
18-11-2010, 20:32:37
Supongo que para ver que puntos unes deberías escojer uno y ver cuales son los dos más cercanos. Luego de eso lo marcas como procesado y sigues con los dos que te quedan.
De estos dos puntos escojes uno y buscas otro punto más, que sea el más cercano.

Supongo que será más complejo que esto, porque habrá que ver que no se crucen lineas y ver si un punto puede ser vértice de más de un triángulo (imaginal os puntos de un cuadrado on un punto en medio)

Para dibujarlo tienes dos funciónes que se llaman MoveTo() y LineTo().
La primera posiciona el cursor en una posición y la siguiente dijuja una linea recta hasta esa posición.

Lo que no me queda claro es si los puntos son tridimencionales (x,y,z)
Si es así, estarías buscando hacer pirámides entre 4 puntos.

sarias24
18-11-2010, 21:46:23
las lineas no se pueden cruzar, por lo que si seria mas complejo, y un punto si puede formar parte de mas de un triangulo, ya que un lado solamente va a formar parte de dos triangulos, por otra parte lo de los puntos mas cercanos debe es muy similar a como me lo explicas, pero no se como procesar los puntos e irme moviendo por el dataset , por otro lado por el momento solo utilizare la x, y de cada punto, para hacerlo en 2d, de las funciones las he visto pero no se como pasarle los puntos de forma tal que me vaya pintando desde uno a otro y creando los triangulos.