Документация Engee

triplot

Страница в процессе перевода.

triplot(x, y; kwargs...)
triplot(positions; kwargs...)
triplot(triangles::Triangulation; kwargs...)

Строит триангуляцию на основе предоставленной позиции или объекта Triangulation из DelaunayTriangulation.jl.

Тип графика

Псевдоним типа графика для функции triplot — Triplot.

Примеры

triplot строит треугольную сетку, созданную из произвольного набора точек. Входные данные могут быть представлены либо в виде точек (например, scatter или lines), либо а виде Triangulation из пакета DelaunayTriangulation.jl.

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

points = randn(Point2f, 50)
f, ax, tr = triplot(points, show_points = true, triangle_color = :lightblue)

tri = triangulate(points)
ax, tr = triplot(f[1, 2], tri, show_points = true)
f
8d1f2f1

С помощью triplot можно визуализировать призрачные ребра, окружающие границу.

using CairoMakie
using DelaunayTriangulation

n = 20
angles = range(0, 2pi, length = n+1)[1:end-1]
x = [cos.(angles); 2 .* cos.(angles .+ pi/n)]
y = [sin.(angles); 2 .* sin.(angles .+ pi/n)]
inner = [n:-1:1; n] # внутренняя часть по часовой стрелке
outer = [(n+1):(2n); n+1] # внешняя часть против часовой стрелки
boundary_nodes = [[outer], [inner]]
points = [x'; y']
tri = triangulate(points; boundary_nodes = boundary_nodes)

f, ax, tr = triplot(tri; show_ghost_edges = true, show_points = true)
f
13e72ef

Можно также выделить ограниченные ребра и отобразить выпуклую оболочку, что особенно полезно, когда триангуляция перестает быть выпуклой.

using CairoMakie
using DelaunayTriangulation

using Random
Random.seed!(1234)

outer = [
    (0.0,0.0),(2.0,1.0),(4.0,0.0),
    (6.0,2.0),(2.0,3.0),(3.0,4.0),
    (6.0,6.0),(0.0,6.0),(0.0,0.0)
]
inner = [
    (1.0,5.0),(2.0,4.0),(1.01,1.01),
    (1.0,1.0),(0.99,1.01),(1.0,5.0)
]
boundary_points = [[outer], [inner]]
boundary_nodes, points = convert_boundary_points_to_indices(boundary_points)
tri = triangulate(points; boundary_nodes = boundary_nodes)
refine!(tri; max_area=1e-3*get_area(tri))

f, ax, tr = triplot(tri, show_constrained_edges = true, constrained_edge_linewidth = 4, show_convex_hull = true)
f
458049f

Атрибуты

bounding_box

Значение по умолчанию: automatic
задает ограничивающий прямоугольник для усечения фантомных ребер; это может быть Rect2 (или BBox) либо кортеж вида (xmin, xmax, ymin, ymax). По умолчанию прямоугольник задается в виде [a - eΔx, b + eΔx] × [c - eΔy, d + eΔy], где e — это ghost_edge_extension_factor, Δx = b - a и Δy = d - c — длины сторон прямоугольника, а [a, b] × [c, d] — ограничивающий прямоугольник точек триангуляции.

constrained_edge_color

Значение по умолчанию: :magenta
задает цвет ограниченных ребер.

constrained_edge_linestyle

Значение по умолчанию: @inherit linestyle
задает стиль линии ограниченных ребер.

constrained_edge_linewidth

Значение по умолчанию: @inherit linewidth
задает толщину ограниченных ребер.

convex_hull_color

Значение по умолчанию: :red
задает цвет выпуклой оболочки.

convex_hull_linestyle

Значение по умолчанию: :dash
задает стиль линии выпуклой оболочки.

convex_hull_linewidth

Значение по умолчанию: @inherit linewidth
задает толщину выпуклой оболочки.

ghost_edge_color

Значение по умолчанию: :blue
задает цвет фантомных ребер.

ghost_edge_extension_factor

Значение по умолчанию: 0.1
задает коэффициент продления для прямоугольника, на который продлеваются внешние фантомные ребра.

ghost_edge_linestyle

Значение по умолчанию: @inherit linestyle
задает стиль линии фантомных ребер.

ghost_edge_linewidth

Значение по умолчанию: @inherit linewidth
задает толщину фантомных ребер.

joinstyle

Значение по умолчанию: @inherit joinstyle
документация недоступна.

linecap

Значение по умолчанию: @inherit linecap
документация недоступна.

linestyle

Значение по умолчанию: :solid
задает стиль линии ребер треугольника.

marker

Значение по умолчанию: @inherit marker
задает форму точек.

markercolor

Значение по умолчанию: @inherit markercolor
задает цвет точек.

markersize

Значение по умолчанию: @inherit markersize
задает размер точек.

miter_limit

Значение по умолчанию: @inherit miter_limit
документация недоступна.

recompute_centers

Значение по умолчанию: false
определяет, следует ли пересчитывать репрезентативные точки для ориентации фантомных ребер. Обратите внимание, что при этом tri.representative_point_list изменяется напрямую.

show_constrained_edges

Значение по умолчанию: false
определяет, следует ли строить ограниченные ребра.

show_convex_hull

Значение по умолчанию: false
определяет, следует ли строить выпуклую оболочку.

show_ghost_edges

Значение по умолчанию: false
определяет, следует ли строить фантомные ребра.

show_points

Значение по умолчанию: false
определяет, следует ли строить отдельные точки. Обратите внимание, что при этом строятся только точки, включенные в триангуляцию.

strokecolor

Значение по умолчанию: @inherit patchstrokecolor
задает цвет ребер треугольника.

strokewidth

Значение по умолчанию: 1
задает толщину линии ребер треугольника.

triangle_color

Значение по умолчанию: :transparent
задает цвет треугольников.