Cho một tập các điểm trong mặt phẳng T={a1,a2,...,an}
thì Graphics[Polygon[T]]
sẽ vẽ đồ thị đa giác được tạo bởi các điểm. Làm cách nào để thêm nhãn vào các đỉnh của đa giác? Chỉ đơn thuần là chỉ mục như một nhãn sẽ tốt hơn thì không có gì. Bất kỳ ý tưởng?Ghi nhãn các đỉnh của đa giác trong Mathematica
6
A
Trả lời
9
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{{LightGray, Polygon[pts]},
{pts /. {x_, y_} :> Text[Style[{x, y}, Red], {x, y}]}}
]
Để thêm điểm cũng
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}]}}
}
]
update:
Sử dụng chỉ số:
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) sử dụng pattern matching. Điều này sử dụng functional programming. MapIndexed
cung cấp cho bạn cả tọa độ và chỉ mục của chúng mà không cần Position
để tìm thấy nó.
pts = {{1, 0}, {0, Sqrt[3]}, {-1, 0}};
Graphics[
{
{LightGray, Polygon[pts]},
MapIndexed[Text[Style[#2[[1]], Red], #1, {0, -1}] &, pts]
}
]
hoặc, nếu bạn không thích MapIndexed
, đây là một phiên bản với Apply
(ở cấp 1, ký hiệu ghi vào @@@
).
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])
}
]
này có thể được mở rộng để nhãn tùy ý như sau:
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
Bạn có thể tận dụng các tùy chọn của GraphPlot
cho việc này. Ví dụ:
c = RandomReal[1, {3, 2}]
g = GraphPlot[c, VertexLabeling -> True, VertexCoordinateRules -> c];
Graphics[{[email protected], g[[1]]}]
Bằng cách này bạn cũng có thể tận dụng VertexLabeling -> Tooltip
, hoặc VertexRenderingFunction
nếu bạn muốn. Nếu bạn không muốn các cạnh được phủ lên, bạn có thể thêm EdgeRenderingFunction -> None
vào chức năng GraphPlot
. Ví dụ:
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]]}]
Các vấn đề liên quan
- 1. Thu nhỏ các đỉnh đa giác
- 2. Tìm đa giác diện tích tối đa được ghi trong đa giác lớn hơn
- 3. Sắp xếp các điểm của đa giác
- 4. Có thể truy cập tất cả các đỉnh trong đa giác trong trình đổ bóng đỉnh không?
- 5. So sánh các đa giác tương tự
- 6. Tìm trung tâm của đa giác có đỉnh có trọng số
- 7. Nhãn đơn giản trên một đa giác tờ rơi (geojson)
- 8. Chia đa giác đơn giản, đa giác thành đa giác hoặc đa giác đơn giản thực sự
- 9. Tìm các đỉnh trong lưới tam giác đều bắt nguồn từ một đỉnh trung tâm
- 10. Tìm các đỉnh độc đáo từ 'canh tam giác'
- 11. Lô màu trong Mathematica theo nhãn
- 12. TextRecognize của Mathematica không tối đa
- 13. Điểm trong thuật toán đa giác xử lý các đa giác nằm ngang antemeridian
- 14. Vẽ 3D đa giác trong python-matplotlib
- 15. Tạo lưới tứ giác từ lưới bề mặt Mathematica
- 16. Phân hủy đối với Đa giác lồi
- 17. Kích thước đỉnh tối đa
- 18. Tìm trục trung gian của đa giác bằng C#
- 19. giao lộ và liên minh các đa giác
- 20. Trong Google Map V3, cách đặt nhãn bên trong và bên trên đa giác?
- 21. Tạo tam giác Sierpinski lặp lại trong Mathematica?
- 22. Điểm gần nhất của hai đa giác
- 23. Đa giác với các tọa độ kép
- 24. làm thế nào để có nhãn x trục trong đa giác ggplot với facet_wrap?
- 25. SciPy Tạo Mặt nạ đa giác 2D
- 26. Ba.js đa giác tam giác không thành công trong các điểm trùng lặp giả
- 27. giao lộ phân đoạn-đa giác
- 28. Triangulation đa giác
- 29. graph Đạo với indegree tối đa của một đỉnh
- 30. Nhận đa giác gần với một lat, dài trong MySQL
Đây là thật sự tốt đẹp. Hầu như những gì tôi theo sau. Làm thế nào có thể thay đổi ví dụ của bạn, và có được chỉ số của đỉnh như là một nhãn chứ không phải là các tọa độ? Cảm ơn trước! – Dror
được thêm vào để cập nhật .... – Nasser
WOW! Điều đó thực sự tuyệt vời! Bạn có thể thêm một số giải thích sự kỳ diệu là gì? – Dror