Bitbybit Docs
    Bereite Suchindex vor...

    Klasse Line

    Gerade Linien zwischen zwei Punkten, gehalten als einfache Objekte der Form { start, end }, und die Segmentform [start, end] derselben Sache. Die Methoden hier bauen Linien, messen und transformieren sie, wandeln zwischen den beiden Formen um, platzieren Punkte entlang ihnen und finden, wo sich zwei Linien kreuzen. Längen sind in Modelleinheiten.

    Index

    Konstruktoren

    convert

    • Verwandelt ein Linienobjekt in seine Segmentform, das Paar [start, end].

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

      Parameter

      Rückgabewert Segment3

      Das Segment

    • Verwandelt jedes Linienobjekt in seine Segmentform, das Paar [start, end].

      Beispiel: drei Linien -> drei Segmente, in derselben Reihenfolge

      Parameter

      Rückgabewert Segment3[]

      Ein Segment pro Linie

    • Verwandelt ein Segment, das Paar [start, end], in ein Linienobjekt.

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

      Parameter

      Rückgabewert Line3

      Die Linie

    • Verwandelt jedes Segment, ein Paar [start, end], in ein Linienobjekt.

      Beispiel: drei Segmente -> drei Linien, in derselben Reihenfolge

      Parameter

      Rückgabewert Line3[]

      Eine Linie pro Segment

    create

    • Erzeugt ein Linienobjekt aus einem Start- und einem Endpunkt.

      Beispiel: Start [0,0,0], Ende [10,5,0] -> { start: [0,0,0], end: [10,5,0] }

      Parameter

      Rückgabewert Line3

      Das Linienobjekt

      const line = bitbybit.line.create({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Erzeugt ein Segment, die Punktepaar-Form einer Linie, aus einem Start- und einem Endpunkt.

      Beispiel: Start [0,0,0], Ende [10,5,0] -> [[0,0,0], [10,5,0]]

      Parameter

      Rückgabewert Segment3

      Das Segment als [start, end]

      const segment = bitbybit.line.createSegment({ start: [0, 0, 0], end: [10, 5, 0] });
      
    • Verbindet jeden Punkt mit dem nächsten durch eine Linie, sodass eine Liste von Punkten zu einer Kette von Linien wird.

      Beispiel: [[0,0,0], [5,0,0], [5,5,0]] -> zwei Linien, [0,0,0] nach [5,0,0] und [5,0,0] nach [5,5,0]

      Parameter

      Rückgabewert Line3[]

      Eine Linie pro Paar benachbarter Punkte

      const chain = bitbybit.line.linesBetweenPoints({ points: [[0, 0, 0], [5, 0, 0], [5, 5, 0]] });
      
    • Paart jeden Startpunkt mit dem Endpunkt an derselben Position und verbindet sie durch eine Linie.

      Ein Paar, dessen zwei Punkte zusammenfallen, ergibt keine Linie und wird weggelassen. Beispiel: Starts [[0,0,0], [5,0,0]] und Enden [[0,5,0], [5,5,0]] -> zwei Linien

      Parameter

      Rückgabewert Line3[]

      Eine Linie pro Paar, Paare mit Länge 0 werden übersprungen

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

    get

    • Liest den Startpunkt einer Linie.

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

      Parameter

      Rückgabewert Point3

      Der Startpunkt

    • Liest den Endpunkt einer Linie.

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

      Parameter

      Rückgabewert Point3

      Der Endpunkt

    • Misst den geraden Abstand vom Anfang einer Linie bis zu ihrem Ende.

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

      Parameter

      Rückgabewert number

      Die Länge in Modelleinheiten

    • Ermittelt den Punkt bei einem Anteil des Wegs entlang einer Linie: 0 ergibt den Anfang, 1 das Ende, 0.5 die Mitte.

      Ein Anteil außerhalb von 0 bis 1 setzt über die Enden hinaus fort. Beispiel: { start: [0,0,0], end: [10,0,0] } bei 0.5 -> [5,0,0]

      Parameter

      Rückgabewert Point3

      Der Punkt auf der Linie

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

    intersection

    • Ermittelt den Punkt, an dem sich zwei Linien kreuzen.

      Mit checkSegmentsOnly an muss die Kreuzung innerhalb beider Segmente liegen; aus, verlängern sich die Linien ohne Ende. Parallele Linien, Linien, die aneinander vorbeilaufen, ohne sich zu treffen, und Segmente, die einander nicht erreichen, ergeben undefined. Die Toleranz sagt, wie nah als Treffen gilt. Beispiel: [0,0,0] nach [10,0,0] und [5,-5,0] nach [5,5,0] -> [5,0,0]

      Parameter

      Rückgabewert Point3

      Der Schnittpunkt oder undefined, wenn es keinen gibt

      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

    • Vertauscht Anfang und Ende einer Linie, sodass sie in die andere Richtung verläuft.

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

      Parameter

      Rückgabewert Line3

      Eine neue Linie, die in die andere Richtung verläuft

    transforms

    • Wendet eine Transformationsmatrix, oder eine Liste davon der Reihe nach, auf beide Enden einer Linie an.

      Beispiel: { start: [0,0,0], end: [10,0,0] } verschoben um [5,5,0] -> { start: [5,5,0], end: [15,5,0] }

      Parameter

      Rückgabewert Line3

      Eine neue Linie mit den transformierten Enden

      const moved = bitbybit.line.transformLine({
      line: { start: [0, 0, 0], end: [10, 0, 0] },
      transformation: bitbybit.transforms.translationXYZ({ translation: [5, 5, 0] }),
      });
    • Wendet auf jede Linie eine andere Transformation an: die erste Transformation auf die erste Linie, und so weiter.

      Beispiel: drei Linien mit drei Verschiebungen -> jede Linie um ihre eigene Verschiebung bewegt

      Parameter

      Rückgabewert Line3[]

      Die transformierten Linien, in derselben Reihenfolge

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