Dado un conjunto de puntos en el plano T={a1,a2,...,an}
, Graphics[Polygon[T]]
trazará el polígono generado por los puntos. ¿Cómo puedo agregar etiquetas a los vértices del polígono? Tener simplemente el índice como una etiqueta sería mejor que nada. ¿Algunas ideas?Etiquetado de vértices de un polígono en Mathematica
6
A
Respuesta
9
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{{LightGray, Polygon[pts]},
{pts /. {x_, y_} :> Text[Style[{x, y}, Red], {x, y}]}}
]
Para añadir puntos también
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{{LightGray, Polygon[pts]},
{pts /. {x_, y_} :> Text[Style[{x, y}, Red], {x, y}, {0, -1}]},
{pts /. {x_, y_} :> {Blue, PointSize[0.02], Point[{x, y}]}}
}
]
actualización:
uso del índice:
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{{LightGray, Polygon[pts]},
{pts /. {x_, y_} :>
Text[Style[Position[pts, {x, y}], Red], {x, y}, {0, -1}]}
}
]
7
Nasser's version (update) utiliza pattern matching. Este usa functional programming. MapIndexed
le da las coordenadas y su índice sin la necesidad de Position
para encontrarlo.
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{
{LightGray, Polygon[pts]},
MapIndexed[Text[Style[#2[[1]], Red], #1, {0, -1}] &, pts]
}
]
o, si no te gusta MapIndexed
, aquí es una versión con Apply
(en el nivel 1, la notación infija @@@
).
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
idx = Range[Length[pts]];
Graphics[
{
{LightGray, Polygon[pts]},
Text[Style[#2, Red], #1, {0, -1}] & @@@ ({pts, idx}\[Transpose])
}
]
esto se puede ampliar a las etiquetas arbitrarias de la siguiente manera:
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
idx = {"One", "Two", "Three"};
Graphics[
{
{LightGray, Polygon[pts]},
Text[Style[#2, Red], #1, {0, -1}] & @@@ ({pts, idx}\[Transpose])
}
]
0
puede aprovechar las opciones de GraphPlot
para esto. Ejemplo:
c = RandomReal[1, {3, 2}]
g = GraphPlot[c, VertexLabeling -> True, VertexCoordinateRules -> c];
Graphics[{[email protected], g[[1]]}]
esta manera también se puede hacer uso de VertexLabeling -> Tooltip
, o VertexRenderingFunction
si quieres. Si no desea superponer los bordes, puede agregar EdgeRenderingFunction -> None
a la función GraphPlot
. Ejemplo:
c = RandomReal[1, {3, 2}]
g = GraphPlot[c, VertexLabeling -> All, VertexCoordinateRules -> c,
EdgeRenderingFunction -> None,
VertexRenderingFunction -> ({White, EdgeForm[Black], Disk[#, .02],
Black, Text[#2, #1]} &)];
Graphics[{Brown, [email protected], g[[1]]}]
Cuestiones relacionadas
- 1. ¿Es posible acceder a todos los vértices en un polígono en un sombreado de vértices?
- 2. Encuentra el centroide de un polígono con vértices ponderados
- 3. Gráfico [] corta las etiquetas de los vértices en Mathematica
- 4. Mejor algoritmo para encontrar los bordes (polígono) de los vértices
- 5. Algoritmo para convertir vértices de una franja triangular al polígono
- 6. Dado un gran conjunto de vértices en un polígono no convexo, ¿cómo puedo encontrar los bordes?
- 7. Minimizar vértices poligonales
- 8. ¿Encontrando el centroide de un polígono?
- 9. Etiquetado GTK en un cuadro de diálogo
- 10. ¿Cómo acceder a otros vértices en un programa de sombreado de vértices en OpenGL es 2?
- 11. Cómo generar un polígono convexo al azar?
- 12. En Mathematica. Cuando utilizo imágenes como vértices en GraphPlot, ¿cómo evito que las imágenes se superpongan?
- 13. Comprobar si polígono se encuentra dentro de un polígono
- 14. Cálculo de vértices de un rectángulo girado
- 15. Círculo más grande dentro de un polígono no convexo
- 16. Interfaces de etiquetado en Java
- 17. Colores menos de vértices
- 18. Buscar el eje medio de un polígono usando C#
- 19. etiquetado de eje d3
- 20. Segmento-polígono intersección
- 21. Etiquetado de fuente C++
- 22. ¿Qué es un "DFA etiquetado"?
- 23. d3 Etiquetado de nodo
- 24. Distancia de un punto a un polígono
- 25. SciPy Crear máscara de polígono 2D
- 26. Rasterizar un polígono 2D
- 27. etiquetado POS en alemán
- 28. Cómo cortar un polígono simple con una línea
- 29. entornos de etiquetado de automóviles en AUCTeX
- 30. Un comportamiento inesperado de PatternTest en Mathematica
Esto es realmente agradable. Casi lo que estoy buscando. ¿Cómo puede alterar su ejemplo y obtener el índice del vértice como una etiqueta en lugar de las coordenadas? ¡Gracias por adelantado! – Dror
agregado para actualizar .... – Nasser
¡GUAU! ¡Eso es realmente genial! ¿Puedes agregar alguna explicación sobre la magia? – Dror