Transformez des polylignes en bandes tissées avec BandWeaver

par Ed Pegg
Article original
BandWeaver est une fonction de ressource qui renvoie des bandes polygonales dont la largeur est deux fois supérieure à la moitié de la largeur donnée pour un tissage par-dessus/par-dessous de polylignes qui se croisent. Voici la page de documentation de la fonction : https://resources.wolframcloud.com/FunctionRepository/resources/BandWeaver/

Exemples

Transformons une polyligne en bandes tissées :
In[]:=
polyline={{0,0},{6,0},{6,9},{3,9},{3,3},{9,3},{9,6},{0,6},{0,0}};​​bands=
[◼]
BandWeaver
[polyline,1]
Out[]=
Polygon
Number of points: 10
Embedding dimension: 2
,Polygon
Number of points: 10
Embedding dimension: 2
,Polygon
Number of points: 8
Embedding dimension: 2

Regardons la ligne polygonale et les bandes de polygones générées :
In[]:=
Row[Flatten[Join[{Graphics[{Line[polyline]}],Graphics[#]&/@bands[[1]]}]]]
Out[]=
Regardons la bande tissée complète :
In[]:=
Graphics[{EdgeForm[{Black,Thick}],Cyan,bands}]
Out[]=
Affichons les déplacements du cavalier (knight) :
In[]:=
knight={{0,0},{1,2},{2,0},{0,1},{2,2},{1,0},{0,2},{2,1},{0,0}};GraphicsEdgeForm[{Black,Thick}],Red,
[◼]
BandWeaver
[knight,.06]
Out[]=
L’épaisseur possible de la bande est limitée, la plupart du temps :
In[]:=
polyline={{0,1},{2,0},{1,1},{3,2},{2,3},{1,2},{3,1},{1,0},{2,1},{0,2},{1,3},{2,2},{0,1}};GraphicsEdgeForm[{Black,Thick}],Green,
[◼]
BandWeaver
[polyline,.05]
Out[]=
Sans auto-intersection, il faut utiliser
ResourceFunction
PerforatePolygons à la place :
In[]:=
GraphicsEdgeForm[{Black,Thick}],Green,
[◼]
BandWeaver
[{{0,0},{0,1},{1,1},{1,0}},.1]
Out[]=
Une seule auto-intersection suffit :
In[]:=
GraphicsEdgeForm[{Black,Thick}],Green,
[◼]
BandWeaver
[{{0,0},{0,1},{1,0},{1,1}},.1]
Out[]=
In[]:=
pts1=
;​​pts5=
;
In[]:=
bands=
[◼]
BandWeaver
[{pts1,pts5},.25];​​Graphics[{EdgeForm[{Black,Thick}],Green,bands[[1]],Red,bands[[2]]}]
Out[]=

Portée

Applications 

Problèmes possibles

Une seule auto-intersection suffit :

Exemples ingénieux

Tissons ensemble deux étoiles à 9 branches :

CITER CE NOTEBOOK