Home > Technologie > Vollendung des Hauses

Vollendung des Hauses

0
Advertisement

Vollendung des Hauses

Zurück zur vorherigen Lektion: Coding the House

Unterrichtsübersicht:

In dieser Lektion lernen Sie, wie man alle Formen positioniert, so dass sie in die endgültige Form des Hauses kombiniert werden können.

Überprüfen Sie heraus das gesamte "Tinkercoding ein Haus mit Form-Generatoren" Projekt auf Tinkercad

Schritt 1: Positionieren Sie den inneren Block in der Mitte des äußeren Blocks

Um die Erstellung der drei Formen, aus denen sich das Haus zusammensetzt, zu vereinfachen, wurde jedes mit (0, 0, 0) als Basispunkt erstellt. Wenn wir unseren Code an diesem Punkt zu vervollständigen, würden alle Formen übereinander gestapelt werden wie die orange Form, die in der Abbildung unten gezeigt wird. Die farbigen Blöcke werden auch zum Vergleich mit dem Pseudocode des manuellen Entwurfs gezeigt, der früher in dem Dokument gezeigt wurde.

An dieser Stelle müssen wir richtig positionieren jede Form, um sicherzustellen, erhalten wir die richtige endgültige Form. Wir fangen an, Formen zu positionieren, indem wir die innere Masche bewegen, die in der äußeren Masche zentriert werden soll.

Bewegliche Formen können mit einer 3D-Translationsmatrix oder einem Matrix3D-Objekt im Formgenerator durchgeführt werden. Der Code, um die innere Form zu transformieren, wird unten gezeigt. Das Matrix3D-Objekt definiert, wie sich das Objekt im 3D-Raum bewegen soll, und wird an die Transformationsfunktion übergeben, um die Verschiebung auszuführen.

Hinweis: Das folgende Bild wird nicht angezeigt, wenn Sie diesen Codeabschnitt erstellen. Sie wurden erstellt, nachdem das Formgeneratorprogramm geschrieben wurde, um die Ergebnisse des Hinzufügens dieser Transformationen zum Code zu zeigen.

Vollendung des Hauses

Anleitung

  1. Fahren Sie fort, indem Sie den Code aus dem nächsten Schritt in das Shape Generator-Codefenster einfügen.
  2. Var mtx = new Matrix3D (); // erzeugt eine 3D-Übersetzungsmatrix zum Verschieben eines Mesh-Objekts
    Mtx.translation (1,1,0); // legt fest, wie das Objekt verschoben werden soll: +1 in X und +1 in Y-Richtung
    Inner_mesh.transform (mtx); // Bewegt das Objekt basierend auf der Matrix
    Vollendung des Hauses

    Hinweis 1. Die erste Zeile dieses Codes erzeugt eine Variable, die die für die Transformationsfunktion erforderlichen Informationen enthält. 2. Die zweite Zeile definiert, dass die Form +1 im X und +1 im Y 3. Die dritte Zeile verwendet die Variable, um der Transformationsfunktion zu sagen, wie die Form bewegt werden soll.

  3. Das Bild unten zeigt eine vor und nach dem, was den oben genannten Code, um das Programm.

    Die blaue Form zeigt die Transformation des inneren_Mesh-Objekts in seiner neuen Position zusammen mit den Ergebnissen, die das innere und äußere Mesh gruppieren. Es positioniert die innere Masche in der Mitte des größeren Blocks, um ausgehöhlt zu werden.

    Es bleibt nur noch, dem Dachobjekt eine Umwandlung hinzuzufügen, um es richtig auf die Wände zu stellen.
    Vollendung des Hauses

  4. Fahren Sie mit dem nächsten Schritt fort.

Schritt 2: Positionieren Sie das Dach zentriert auf die Oberseite der Wände

Genau wie die innere_mesh oben müssen wir ein anderes Matrix3D-Objekt zu erstellen und zu verwandeln (verschieben) das Dach.

Der untenstehende Code zeigt, wie das Dach in die Position mit beiden hart codierten Zahlen und die H-Höhe variabel, um die Umwandlung des Daches zu verlagern.

Vollendung des Hauses

Anleitung

  1. Kopieren Sie den im nächsten Schritt gezeigten Code in das Formgeneratorfenster direkt unterhalb des im vorherigen Schritt eingegebenen Codes.
  2. Var roof_mtx = new Matrix3D (); // erzeugt eine 3D-Übersetzungsmatrix zum Verschieben eines Mesh-Objekts roof_mtx.translation (-1, -1, H); // legt fest, wie das Objekt bewegt wird: -1 im X und -1 im Y und H in der Z-Richtung roof_mesh.transform (roof_mtx); // Bewegt das Objekt basierend auf der Matrix.

    Vollendung des Hauses

    Hinweis 1. Die erste Zeile dieses Codes erzeugt eine Variable, die die für die Transformationsfunktion erforderlichen Informationen enthält. 2. Die zweite Zeile legt fest, dass die Form -1 im X und -1 im Y bewegt und von der Arbeitsebene in Z-Richtung zur Höhe des in der Variablen H (Wandhöhe) gespeicherten Wertes abgehoben wird. 3. Die dritte Zeile verwendet die Variable "roof_mtx", um der Transformationsfunktion zu zeigen, wie die Form bewegt werden soll.

  3. Fahren Sie mit dem nächsten Schritt fort.

Schritt 3: Aushöhlen Sie das Haus und verbinden Sie das Dach mit den Wänden

Wir sind nun bereit, das Haus zu hohlen, indem wir das innere Netz von der äußeren Mauer abziehen und das Dach mit den Wänden verbinden.

Die Tinkercad API erfordert, dass jeder Formgenerator ein festes Objekt zurückgibt. Die Subtraktionsfunktion ist so aufgebaut, dass die Subtraktion eines oder mehrerer Objekte von einem anderen mit dem ersten Parameter der Funktion ermöglicht wird, in diesem Fall das innere Netz. Der zweite Parameter ist eine Funktion, die ein solides Objekt zurückgeben muss. Diese Funktion kann auch andere Aktionen, in diesem Fall eine Aktion zu vereinen, vor dem Zurückgeben dieses festen Objekts.

Wir können die Funktion in dem zweiten Parameter verwenden, um das Dach zu den Wänden des Hauses zu vereinen, bevor der aus dem Gitter hergestellte Festkörper zurückgegeben wird.

Hinweis: Das folgende Bild wird nicht angezeigt, wenn Sie diesen Codeabschnitt erstellen. Sie wurden erstellt, nachdem das Formgeneratorprogramm geschrieben wurde, um die Ergebnisse des Hinzufügens dieser Transformationen zum Code zu zeigen.

Vollendung des Hauses

Anleitung

  1. Kopieren Sie den im nächsten Schritt gezeigten Code in das Formgeneratorfenster direkt unterhalb des im vorherigen Schritt eingegebenen Codes.
  2. Outer_mesh.subtract (inner_mesh, function (mesh) {
    Mesh.unite (roof_mesh,
    Funktion (Masche) {
    Var x = Festkörper (Mesh); Rückruf (x);
    });
    });
  3. Herzliche Glückwünsche! Du bist fertig.

    Wenn alles gut ging, sollte Ihr Code ein Haus erstellen, das wie das gelbe Haus oben aussieht. Die Farbe Ihres Entwurfs kann unterschiedlich sein.
  4. Fahren Sie mit dem nächsten Schritt fort.

Schritt 4: Fahren Sie mit der nächsten Lektion fort

In der nächsten Lektion haben Sie eine Chance, Ihre Codierungsbeine zu dehnen und den Code für Ihre Bedürfnisse anzupassen.

Nächste Lektion: Machen Sie es Ihre eigene

Related Reading