Bitbybit Docs
    Preparing search index...

    Class Polyline

    Polylignes : chaînes de segments droits passant par une liste de points, tenues comme de simples objets de la forme { points, isClosed }. Une polyligne fermée relie son dernier point à son premier. Les méthodes ici mesurent une polyligne, la convertissent en segments ou en lignes, trouvent où des polylignes se croisent, trient des segments isolés en chaînes et dimensionnent des congés pour ses coins. Les longueurs sont en unités du modèle.

    Index

    Constructors

    convert

    • Inverse l'ordre des points, de sorte que la polyligne va dans l'autre sens.

      La liste de points propre de la polyligne donnée est inversée sur place et renvoyée dans un nouvel objet polyligne. Exemple : [[0,0,0], [1,0,0], [2,0,0]] -> [[2,0,0], [1,0,0], [0,0,0]]

      Parameters

      Returns Bit.Inputs.Polyline.PolylinePropertiesDto

      Une polyligne avec les points dans l'ordre inverse

      const back = bitbybit.polyline.reverse({ polyline: { points: [[0, 0, 0], [1, 0, 0], [2, 0, 0]] } });
      
    • Découpe la polyligne en objets ligne, un par segment, chacun avec un point de départ et un point d'arrivée.

      Une polyligne fermée reçoit aussi le segment de son dernier point à son premier, sauf si les deux coïncident. Exemple : trois points -> deux lignes, ou trois quand elle est fermée

      Parameters

      Returns Line3[]

      Une ligne par segment, dans l'ordre

      const lines = bitbybit.polyline.polylineToLines({ polyline: { points: [[0, 0, 0], [1, 0, 0], [1, 1, 0]], isClosed: true } });
      
    • Découpe la polyligne en segments, chacun une paire de points.

      Une polyligne fermée reçoit aussi le segment de son dernier point à son premier, sauf si les deux coïncident. Moins de deux points ne donnent aucun segment. Exemple : quatre points, fermée -> quatre segments autour de la boucle

      Parameters

      Returns Segment3[]

      Une paire de points par segment, dans l'ordre

      const segments = bitbybit.polyline.polylineToSegments({ polyline: { points: [[0, 0, 0], [1, 0, 0], [1, 1, 0]], isClosed: false } });
      

    create

    fillet

    • Trouve le plus grand congé pour chaque coin de la polyligne, chacun limité à la moitié la plus proche de ses segments pour que les congés ne se chevauchent jamais.

      Une polyligne fermée inclut les deux coins à ses extrémités. Moins de trois points donnent une liste vide.

      Parameters

      Returns number[]

      Un rayon par coin, dans l'ordre des coins

      const radii = bitbybit.polyline.maxFilletsHalfLine({
      polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]], isClosed: true },
      tolerance: 1e-7,
      });
    • Trouve un seul rayon de congé qui convient à chaque coin de la polyligne : le plus petit des maximums par coin selon la règle du demi-segment.

      Moins de trois points, ou tout coin qui n'admet aucun congé, donnent 0.

      Parameters

      Returns number

      Le rayon qui convient à chaque coin, en unités du modèle

      const radius = bitbybit.polyline.safestFilletRadius({
      polyline: { points: [[0, 0, 0], [10, 0, 0], [10, 10, 0], [0, 10, 0]], isClosed: true },
      tolerance: 1e-7,
      });

    get

    • Mesure la polyligne en additionnant les distances en ligne droite entre points voisins.

      Le segment de fermeture d'une polyligne fermée n'est pas compté. Exemple : [[0,0,0], [3,0,0], [3,4,0]] -> 7

      Parameters

      Returns number

      La longueur en unités du modèle

      const len = bitbybit.polyline.length({ polyline: { points: [[0, 0, 0], [3, 0, 0], [3, 4, 0]] } });
      

    intersection

    • Trouve les points où deux polylignes se croisent, en testant chaque segment de l'une contre chaque segment de l'autre.

      Les croisements plus proches l'un de l'autre que la tolérance sont rapportés une seule fois. Exemple : deux polylignes formant un X -> le point au milieu

      Parameters

      Returns Point3[]

      Les points de croisement ; vide quand il n'y en a pas

      const crossings = bitbybit.polyline.twoPolylineIntersection({
      polyline1: { points: [[0, 0, 0], [2, 2, 0]] },
      polyline2: { points: [[0, 2, 0], [2, 0, 0]] },
      tolerance: 1e-6,
      });

    intersections

    • Trouve les points où la polyligne se croise elle-même.

      Les segments voisins ne sont pas testés l'un contre l'autre, et les croisements plus proches l'un de l'autre que la tolérance sont rapportés une seule fois. Exemple : un huit -> son unique point de croisement

      Parameters

      Returns Point3[]

      Les points de croisement ; vide quand il n'y en a pas

      const crossings = bitbybit.polyline.polylineSelfIntersection({
      polyline: { points: [[0, 0, 0], [2, 2, 0], [2, 0, 0], [0, 2, 0]] },
      tolerance: 1e-6,
      });

    sort

    • Réunit des segments épars en polylignes en faisant correspondre les extrémités qui se rejoignent à la tolérance près.

      Les segments qui se connectent bout à bout deviennent une polyligne par chaîne ; les segments qui ne touchent rien deviennent des polylignes à un seul segment. Exemple : dix segments dispersés formant deux chaînes -> deux polylignes

      Parameters

      • inputs: SegmentsToleranceDto

        Les segments et la tolérance pour que deux extrémités soient considérées comme se touchant

      Returns Polyline3[]

      Les polylignes que forment les segments

      const chains = bitbybit.polyline.sortSegmentsIntoPolylines({
      segments: [[[0, 0, 0], [1, 0, 0]], [[1, 0, 0], [1, 1, 0]], [[5, 5, 0], [6, 5, 0]]],
      tolerance: 1e-5,
      });

    transforms

    • Applique une matrice de transformation, ou une liste de matrices dans l'ordre, à chaque point de la polyligne.

      Exemple : une translation de [5,0,0] -> chaque point déplacé de 5 le long de X

      Parameters

      Returns Bit.Inputs.Polyline.PolylinePropertiesDto

      Une nouvelle polyligne avec les points transformés

      const moved = bitbybit.polyline.transformPolyline({
      polyline: { points: [[0, 0, 0], [1, 0, 0]] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 0, 0] }),
      });