Bitbybit Docs
    Preparing search index...

    Class Line

    Lignes droites entre deux points, tenues comme de simples objets de la forme { start, end }, et la forme segment [start, end] de la même chose. Les méthodes ici construisent des lignes, les mesurent et les transforment, convertissent entre les deux formes, placent des points le long d'elles et trouvent où deux lignes se croisent. Les longueurs sont en unités du modèle.

    Index

    Constructors

    convert

    • Transforme un objet ligne en sa forme segment, la paire [start, end].

      Exemple : { start: [0,0,0], end: [10,5,0] } -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      Le segment

    • Transforme chaque objet ligne en sa forme segment, la paire [start, end].

      Exemple : trois lignes -> trois segments, dans le même ordre

      Parameters

      Returns Segment3[]

      Un segment par ligne

    • Transforme un segment, la paire [start, end], en objet ligne.

      Exemple : [[0,0,0], [10,5,0]] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      La ligne

    • Transforme chaque segment, une paire [start, end], en objet ligne.

      Exemple : trois segments -> trois lignes, dans le même ordre

      Parameters

      Returns Line3[]

      Une ligne par segment

    create

    • Construit un objet ligne à partir d'un point de départ et d'un point d'arrivée.

      Exemple : départ [0,0,0], arrivée [10,5,0] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      L'objet ligne

      const line = bitbybit.line.create({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Construit un segment, la forme paire-de-points d'une ligne, à partir d'un point de départ et d'un point d'arrivée.

      Exemple : départ [0,0,0], arrivée [10,5,0] -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      Le segment sous forme [start, end]

      const segment = bitbybit.line.createSegment({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Relie chaque point au suivant par une ligne, de sorte qu'une liste de points devient une chaîne de lignes.

      Exemple : [[0,0,0], [5,0,0], [5,5,0]] -> deux lignes, [0,0,0] vers [5,0,0] et [5,0,0] vers [5,5,0]

      Parameters

      Returns Line3[]

      Une ligne par paire de points voisins

      const chain = bitbybit.line.linesBetweenPoints({ points: [[0, 0, 0], [5, 0, 0], [5, 5, 0]] });
      
    • Apparie chaque point de départ avec le point d'arrivée à la même position et les relie par une ligne.

      Une paire dont les deux points coïncident ne fait aucune ligne et est laissée de côté. Exemple : départs [[0,0,0], [5,0,0]] et arrivées [[0,5,0], [5,5,0]] -> deux lignes

      Parameters

      • inputs: LineStartEndPointsDto

        Les points de départ et les points d'arrivée, dans un ordre correspondant

      Returns Line3[]

      Une ligne par paire, en sautant les paires de longueur 0

      const rungs = bitbybit.line.linesBetweenStartAndEndPoints({
      startPoints: [[0, 0, 0], [5, 0, 0]],
      endPoints: [[0, 5, 0], [5, 5, 0]],
      });

    get

    • Lit le point de départ d'une ligne.

      Exemple : { start: [0,0,0], end: [10,5,0] } -> [0,0,0]

      Parameters

      Returns Point3

      Le point de départ

    • Lit le point d'arrivée d'une ligne.

      Exemple : { start: [0,0,0], end: [10,5,0] } -> [10,5,0]

      Parameters

      Returns Point3

      Le point d'arrivée

    • Mesure la distance en ligne droite du début d'une ligne à sa fin.

      Exemple : { start: [0,0,0], end: [3,4,0] } -> 5

      Parameters

      Returns number

      La longueur en unités du modèle

    • Trouve le point situé à une fraction du chemin le long d'une ligne : 0 donne le début, 1 la fin, 0.5 le milieu.

      Une fraction hors de 0 à 1 continue au-delà des extrémités. Exemple : { start: [0,0,0], end: [10,0,0] } à 0.5 -> [5,0,0]

      Parameters

      Returns Point3

      Le point sur la ligne

      const middle = bitbybit.line.getPointOnLine({ line: { start: [0, 0, 0], end: [10, 0, 0] }, param: 0.5 });
      

    intersection

    • Trouve le point où deux lignes se croisent.

      Avec checkSegmentsOnly actif, le croisement doit se trouver dans les deux segments ; inactif, les lignes s'étendent sans fin. Des lignes parallèles, des lignes qui se croisent sans se rencontrer, et des segments qui ne s'atteignent pas donnent undefined. La tolérance dit à quelle distance on considère qu'elles se rencontrent. Exemple : [0,0,0] vers [10,0,0] et [5,-5,0] vers [5,5,0] -> [5,0,0]

      Parameters

      Returns Point3

      Le point de croisement, ou undefined quand il n'y en a pas

      const crossing = bitbybit.line.lineLineIntersection({
      line1: { start: [0, 0, 0], end: [10, 0, 0] },
      line2: { start: [5, -5, 0], end: [5, 5, 0] },
      checkSegmentsOnly: true,
      tolerance: 1e-6,
      });

    operations

    • Échange le début et la fin d'une ligne, de sorte qu'elle va dans l'autre sens.

      Exemple : { start: [0,0,0], end: [10,5,0] } -> { start: [10,5,0], end: [0,0,0] }

      Parameters

      Returns Line3

      Une nouvelle ligne parcourue dans l'autre sens

    transforms

    • Applique une matrice de transformation, ou une liste de matrices dans l'ordre, aux deux extrémités d'une ligne.

      Exemple : { start: [0,0,0], end: [10,0,0] } déplacé de [5,5,0] -> { start: [5,5,0], end: [15,5,0] }

      Parameters

      Returns Line3

      Une nouvelle ligne avec les extrémités transformées

      const moved = bitbybit.line.transformLine({
      line: { start: [0, 0, 0], end: [10, 0, 0] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Applique une transformation différente à chaque ligne : la première transformation à la première ligne, et ainsi de suite.

      Exemple : trois lignes avec trois translations -> chaque ligne déplacée de sa propre translation

      Parameters

      Returns Line3[]

      Les lignes transformées, dans le même ordre

      const placed = bitbybit.line.transformsForLines({
      lines: [{ start: [0, 0, 0], end: [1, 0, 0] }, { start: [0, 0, 0], end: [0, 1, 0] }],
      transformation: bitbybit.transforms.translationsXYZ({ translations: [[0, 1, 0], [0, 2, 0]] }),
      });