Skip to content

triplot

# Makie.triplotFunction.
julia
triplot(x, y; kwargs...)
triplot(positions; kwargs...)
triplot(triangles::Triangulation; kwargs...)

Plots a triangulation based on the provided position or Triangulation from DelaunayTriangulation.jl.

Plot type

The plot type alias for the triplot function is Triplot.

source


Examples

A triplot plots a triangle mesh generated from an arbitrary set of points. The input data can either be point based (like scatter or lines) or a Triangulation from DelaunayTriangulation.jl.

julia
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
┌ Warning: Using non-Float64 coordinates may cause issues. If you run into problems, consider using Float64 coordinates.
└ @ DelaunayTriangulation ~/.julia/packages/DelaunayTriangulation/FJ3Ab/src/algorithms/triangulation/main.jl:133

You can use triplot to visualise the ghost edges surrounding the boundary.

julia
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] # clockwise inner
outer = [(n+1):(2n); n+1] # counter-clockwise outer
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

You can also highlight the constrained edges and display the convex hull, which is especially useful when the triangulation is no longer convex.

julia
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

Attributes

bounding_box

Defaults to automatic

Sets the bounding box for truncating ghost edges which can be a Rect2 (or BBox) or a tuple of the form (xmin, xmax, ymin, ymax). By default, the rectangle will be given by [a - eΔx, b + eΔx] × [c - eΔy, d + eΔy] where e is the ghost_edge_extension_factor, Δx = b - a and Δy = d - c are the lengths of the sides of the rectangle, and [a, b] × [c, d] is the bounding box of the points in the triangulation.

constrained_edge_color

Defaults to :magenta

Sets the color of the constrained edges.

constrained_edge_linestyle

Defaults to @inherit linestyle

Sets the linestyle of the constrained edges.

constrained_edge_linewidth

Defaults to @inherit linewidth

Sets the width of the constrained edges.

convex_hull_color

Defaults to :red

Sets the color of the convex hull.

convex_hull_linestyle

Defaults to :dash

Sets the linestyle of the convex hull.

convex_hull_linewidth

Defaults to @inherit linewidth

Sets the width of the convex hull.

ghost_edge_color

Defaults to :blue

Sets the color of the ghost edges.

ghost_edge_extension_factor

Defaults to 0.1

Sets the extension factor for the rectangle that the exterior ghost edges are extended onto.

ghost_edge_linestyle

Defaults to @inherit linestyle

Sets the linestyle of the ghost edges.

ghost_edge_linewidth

Defaults to @inherit linewidth

Sets the width of the ghost edges.

joinstyle

Defaults to @inherit joinstyle

No docs available.

linecap

Defaults to @inherit linecap

No docs available.

linestyle

Defaults to :solid

Sets the linestyle of triangle edges.

marker

Defaults to @inherit marker

Sets the shape of the points.

markercolor

Defaults to @inherit markercolor

Sets the color of the points.

markersize

Defaults to @inherit markersize

Sets the size of the points.

miter_limit

Defaults to @inherit miter_limit

No docs available.

recompute_centers

Defaults to false

Determines whether to recompute the representative points for the ghost edge orientation. Note that this will mutate tri.representative_point_list directly.

show_constrained_edges

Defaults to false

Determines whether to plot the constrained edges.

show_convex_hull

Defaults to false

Determines whether to plot the convex hull.

show_ghost_edges

Defaults to false

Determines whether to plot the ghost edges.

show_points

Defaults to false

Determines whether to plot the individual points. Note that this will only plot points included in the triangulation.

strokecolor

Defaults to @inherit patchstrokecolor

Sets the color of triangle edges.

strokewidth

Defaults to 1

Sets the linewidth of triangle edges.

triangle_color

Defaults to :transparent

Sets the color of the triangles.