Bitbybit Docs
    Preparing search index...

    Class Line

    Linhas retas entre dois pontos, guardadas como objetos simples da forma { start, end }, e a forma de segmento [start, end] da mesma coisa. Os métodos aqui constroem linhas, medem-nas e transformam-nas, convertem entre as duas formas, colocam pontos ao longo delas e descobrem onde duas linhas se cruzam. Os comprimentos estão em unidades do modelo.

    Index

    Constructors

    convert

    • Transforma um objeto linha na sua forma de segmento, o par [start, end].

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

      Parameters

      Returns Segment3

      O segmento

    • Transforma cada objeto linha na sua forma de segmento, o par [start, end].

      Exemplo: três linhas -> três segmentos, pela mesma ordem

      Parameters

      Returns Segment3[]

      Um segmento por linha

    • Transforma um segmento, o par [start, end], num objeto linha.

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

      Parameters

      Returns Line3

      A linha

    • Transforma cada segmento, um par [start, end], num objeto linha.

      Exemplo: três segmentos -> três linhas, pela mesma ordem

      Parameters

      Returns Line3[]

      Uma linha por segmento

    create

    • Constrói um objeto linha a partir de um ponto inicial e um ponto final.

      Exemplo: início [0,0,0], fim [10,5,0] -> { start: [0,0,0], end: [10,5,0] }

      Parameters

      Returns Line3

      O objeto linha

      const line = bitbybit.line.create({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Constrói um segmento, a forma de par de pontos de uma linha, a partir de um ponto inicial e um ponto final.

      Exemplo: início [0,0,0], fim [10,5,0] -> [[0,0,0], [10,5,0]]

      Parameters

      Returns Segment3

      O segmento como [start, end]

      const segment = bitbybit.line.createSegment({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Une cada ponto ao seguinte com uma linha, de modo que uma lista de pontos se torna uma cadeia de linhas.

      Exemplo: [[0,0,0], [5,0,0], [5,5,0]] -> duas linhas, [0,0,0] a [5,0,0] e [5,0,0] a [5,5,0]

      Parameters

      Returns Line3[]

      Uma linha por par de pontos vizinhos

      const chain = bitbybit.line.linesBetweenPoints({ points: [[0, 0, 0], [5, 0, 0], [5, 5, 0]] });
      
    • Emparelha cada ponto inicial com o ponto final na mesma posição e une-os com uma linha.

      Um par cujos dois pontos coincidem não cria linha e é omitido. Exemplo: inícios [[0,0,0], [5,0,0]] e fins [[0,5,0], [5,5,0]] -> duas linhas

      Parameters

      Returns Line3[]

      Uma linha por par, saltando os pares de comprimento 0

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

    get

    • Mede a distância em linha reta do início de uma linha ao seu fim.

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

      Parameters

      Returns number

      O comprimento em unidades do modelo

    • Encontra o ponto a uma fração do caminho ao longo de uma linha: 0 dá o início, 1 o fim, 0.5 o meio.

      Uma fração fora de 0 a 1 continua para lá das extremidades. Exemplo: { start: [0,0,0], end: [10,0,0] } a 0.5 -> [5,0,0]

      Parameters

      Returns Point3

      O ponto na linha

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

    intersection

    • Encontra o ponto onde duas linhas se cruzam.

      Com checkSegmentsOnly ligado, o cruzamento tem de ficar dentro de ambos os segmentos; desligado, as linhas estendem-se sem fim. Linhas paralelas, linhas que passam uma pela outra sem se encontrarem, e segmentos que não se alcançam dão undefined. A tolerância diz quão perto conta como encontro. Exemplo: [0,0,0] a [10,0,0] e [5,-5,0] a [5,5,0] -> [5,0,0]

      Parameters

      Returns Point3

      O ponto de cruzamento, ou undefined quando não existe

      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

    • Troca o início e o fim de uma linha, de modo que corre no sentido contrário.

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

      Parameters

      Returns Line3

      Uma nova linha no sentido contrário

    transforms

    • Aplica uma matriz de transformação, ou uma lista delas por ordem, a ambas as extremidades de uma linha.

      Exemplo: { start: [0,0,0], end: [10,0,0] } movida por [5,5,0] -> { start: [5,5,0], end: [15,5,0] }

      Parameters

      Returns Line3

      Uma nova linha com as extremidades transformadas

      const moved = bitbybit.line.transformLine({
      line: { start: [0, 0, 0], end: [10, 0, 0] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Aplica uma transformação diferente a cada linha: a primeira transformação à primeira linha, e assim por diante.

      Exemplo: três linhas com três translações -> cada linha movida pela sua própria translação

      Parameters

      Returns Line3[]

      As linhas transformadas, pela mesma ordem

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