Bitbybit Docs
    Preparing search index...

    Class Line

    Líneas rectas entre dos puntos, guardadas como objetos simples de la forma { start, end }, y la forma de segmento [start, end] de lo mismo. Los métodos de aquí construyen líneas, las miden y transforman, convierten entre las dos formas, colocan puntos a lo largo de ellas y encuentran dónde se cruzan dos líneas. Las longitudes están en unidades del modelo.

    Index

    Constructors

    convert

    • Convierte un objeto de línea en su forma de segmento, el par [start, end].

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

      Parameters

      Returns Segment3

      El segmento

    • Convierte cada objeto de línea en su forma de segmento, el par [start, end].

      Ejemplo: tres líneas -> tres segmentos, en el mismo orden

      Parameters

      Returns Segment3[]

      Un segmento por línea

    • Convierte un segmento, el par [start, end], en un objeto de línea.

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

      Parameters

      Returns Line3

      La línea

    • Convierte cada segmento, un par [start, end], en un objeto de línea.

      Ejemplo: tres segmentos -> tres líneas, en el mismo orden

      Parameters

      Returns Line3[]

      Una línea por segmento

    create

    • Construye un objeto de línea a partir de un punto inicial y uno final.

      Ejemplo: inicio [0,0,0], final [10,5,0] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      El objeto línea

      const line = bitbybit.line.create({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Construye un segmento, la forma de par de puntos de una línea, a partir de un punto inicial y uno final.

      Ejemplo: inicio [0,0,0], final [10,5,0] -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      El segmento como [start, end]

      const segment = bitbybit.line.createSegment({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Une cada punto con el siguiente mediante una línea, de modo que una lista de puntos se convierte en una cadena de líneas.

      Ejemplo: [[0,0,0], [5,0,0], [5,5,0]] -> dos líneas, de [0,0,0] a [5,0,0] y de [5,0,0] a [5,5,0]

      Parameters

      Returns Line3[]

      Una línea por cada par de puntos vecinos

      const chain = bitbybit.line.linesBetweenPoints({ points: [[0, 0, 0], [5, 0, 0], [5, 5, 0]] });
      
    • Empareja cada punto inicial con el punto final en la misma posición y los une con una línea.

      Un par cuyos dos puntos coinciden no forma ninguna línea y se omite. Ejemplo: inicios [[0,0,0], [5,0,0]] y finales [[0,5,0], [5,5,0]] -> dos líneas

      Parameters

      Returns Line3[]

      Una línea por par, omitiendo los pares de longitud 0

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

    get

    • Lee el punto inicial de una línea.

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

      Parameters

      Returns Point3

      El punto inicial

    • Mide la distancia recta del inicio de una línea a su final.

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

      Parameters

      Returns number

      La longitud en unidades del modelo

    • Encuentra el punto a una fracción del recorrido de una línea: 0 da el inicio, 1 el final, 0.5 el medio.

      Una fracción fuera de 0 a 1 continúa más allá de los extremos. Ejemplo: { start: [0,0,0], end: [10,0,0] } en 0.5 -> [5,0,0]

      Parameters

      Returns Point3

      El punto en la línea

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

    intersection

    • Encuentra el punto donde se cruzan dos líneas.

      Con checkSegmentsOnly activado, el cruce debe estar dentro de ambos segmentos; desactivado, las líneas se extienden sin fin. Las líneas paralelas, las líneas que se pasan sin encontrarse, y los segmentos que no se alcanzan dan undefined. La tolerancia dice cuán cerca cuenta como encontrarse. Ejemplo: [0,0,0] a [10,0,0] y [5,-5,0] a [5,5,0] -> [5,0,0]

      Parameters

      Returns Point3

      El punto de cruce, o undefined cuando no hay ninguno

      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

    • Intercambia el inicio y el final de una línea, de modo que va en sentido contrario.

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

      Parameters

      Returns Line3

      Una nueva línea que recorre el sentido contrario

    transforms

    • Aplica una matriz de transformación, o una lista de ellas en orden, a ambos extremos de una línea.

      Ejemplo: { start: [0,0,0], end: [10,0,0] } movida según [5,5,0] -> { start: [5,5,0], end: [15,5,0] }

      Parameters

      Returns Line3

      Una nueva línea con los extremos transformados

      const moved = bitbybit.line.transformLine({
      line: { start: [0, 0, 0], end: [10, 0, 0] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Aplica una transformación distinta a cada línea: la primera transformación a la primera línea, y así sucesivamente.

      Ejemplo: tres líneas con tres traslaciones -> cada línea movida según su propia traslación

      Parameters

      Returns Line3[]

      Las líneas transformadas, en el mismo orden

      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]] }),
      });