Filter löschen
Filter löschen

How to plot the exterior edges only of an alphaShape

19 Ansichten (letzte 30 Tage)
Mustafa Al Homsi
Mustafa Al Homsi am 18 Mär. 2019
Kommentiert: Román Comelli am 1 Feb. 2022
I am trying to plot an alphaShape using the code below
x = rand(10,1)*5;
y = rand(10,1)*5;
shape = alphaShape(x,y);
alphas = alphaSpectrum(shape);
shape.Alpha = alphas(1);
ax = app.mapPlt;
plot(shape,'Parent',ax,'EdgeColor','none','LineStyle','--','LineWidth',0.75);
When I plot this shape, the exterior edges are blank. Changing the last line to
plot(shape,'Parent',ax,'EdgeColor','black','LineStyle','--','LineWidth',0.75);
will plot the exterior esdges but it will also plot the the interior edges. Is there a way to plot the exterior edges only?

Antworten (1)

John D'Errico
John D'Errico am 19 Mär. 2019
Bearbeitet: John D'Errico am 20 Mär. 2019
When you have a problem like this, learn how to investigate what you can do with the class.
x = rand(10,1)*5;
y = rand(10,1)*5;
shape = alphaShape(x,y);
>> methods(shape)
Methods for class alphaShape:
alphaShape alphaTriangulation boundaryFacets inShape numRegions plot volume
alphaSpectrum area criticalAlpha nearestNeighbor perimeter surfaceArea
methods tells you what methods have been provided. Here, do any of them sound interesting? I hope so.
edges = boundaryFacets(shape)
edges =
1 4
4 8
8 6
6 10
10 3
3 9
9 2
2 5
5 1
plot(x(edges),y(edges),'-ro')
hold on
plot(x,y,'.')
So a fairly boring alpha shape, since all but one of the points were on the perimeter.
  6 Kommentare
John D'Errico
John D'Errico am 20 Mär. 2019
You know how to plot the shape, filled, with NO edges.
Do you know how to then add a second set of edges on top?
help hold
So just then add the perimeter edges on top. Make them any color you wish.
Román Comelli
Román Comelli am 1 Feb. 2022
Is there any easy way to do this with 3D polytopes?

Melden Sie sich an, um zu kommentieren.

Produkte


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by