2009-11-27 10 views
5

que tienen una colección de puntos que se muestran en un gráfico:puntos de conexión en Mathematica

alt text http://img69.imageshack.us/img69/874/plc1k1lrqynuyshgrdegvfy.jpg

Me gustaría saber si hay algún comando que se conectará automáticamente a lo largo del eje xx e yy. Esto se puede entender mejor mirar el cuadro siguiente: (! No estoy pidiendo la forma de aplicar el algoritmo yo) alt text http://img341.imageshack.us/img341/5926/tr53exnkpeofcuiw40koyks.jpg .

Gracias

+1

¿Conectarlos de qué manera? ¿Cada uno con cada? Para hacer una cuadrícula? – Rook

+0

Buena pregunta. Yo no era lo suficientemente específico. –

Respuesta

2

Algo de lo que busca es en el ComputationalGeometry Package. En particular, ConvexHull le dará los puntos exteriores según el sentido antihorario. En ese punto puede usar Line para conectarlos juntos. Los caminos internos son un poco más complicados, y no creo que haya una coincidencia exacta. Pero, un DelaunayTriangulation es el más cercano. Básicamente divide tu lista de puntos en conjuntos de triángulos. Sin embargo, no conozco una función incorporada que pueda dividirla en rectángulos.

4

Sospecho que la respuesta es no, no hay tal orden. Sin embargo, sería interesante escribir algo para hacer eso, es decir, dada una lista de puntos, mostrar las líneas correspondientes. Supongo que solo sería una cuestión de:

Para cada coordenada x única, obtenga la lista de coordenadas y para los puntos con esa coordenada x y haga una línea desde la coordenada min a la máxima y. Luego repite para las coordenadas y.

Si lo hace, sería interesante para publicar aquí como un seguimiento. O si quiere hacer esa pregunta, estoy seguro de que obtendrá algunas buenas soluciones.

4

votar I para dreeves' suggestion. No utiliza una función "incorporada", pero es un trazador de líneas que utiliza programación funcional y especificaciones de nivel. Una implementación es:

gridify[pts : {{_?NumericQ, _?NumericQ} ...}] := 
    Map[Line, GatherBy[pts, #]& /@ {First, Last}, {2}] 
+0

Agradable. Simple y limpio. – rcollyer