Benutzer-Werkzeuge

Webseiten-Werkzeuge


Seitenleiste

ws1617:dreieckologie_15.12.16

Dies ist eine alte Version des Dokuments!


Gruppe: Dreieckologie

Wir haben versucht, eine Funktion zu schreiben, die eine ihr übergebene Box in das bereits erwähnte Dreiecksmodell übersetzt.

Unser bisheriger Code lautet wie folgt:

Da die Position „pos“ den Mittelpunkt der Box beschreibt, wird hier jeder Eckpunkt vom Mittelpunkt aus berechnet:

    A = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z
    B = mybox.pos.x + 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z
    C = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z
    D = mybox.pos.x - 1/2 * mybox.size.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z
    E = mybox.pos.x + 1/2 * mybox.size.x - mybox.size.z, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z
    F = mybox.pos.x + 1/2 * mybox.size.x - mybox.size.z, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z
    G = mybox.pos.x - 1/2 * mybox.size.x + mybox.size.z, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z
    H = mybox.pos.x - 1/2 * mybox.size.x + mybox.size.z, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z - 1/2 * mybox.size.z
    I = mybox.pos.x, mybox.pos.y - 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z
    J = mybox.pos.x, mybox.pos.y + 1/2 * mybox.size.y, mybox.pos.z + 1/2 * mybox.size.z

Hier erstellen wir Listen, die je drei Punkte vereinigen, die später die Eckpunkte der Dreiecke bilden:

    punkte_draufsicht =[[F,B,I],[H,F,I],[D,H,I]]
    punkte_Rechtecke =[[A,B,D],[A,C,D]]
    punkte_Rechtecke_innen =[[E,F,G],[F,G,H]]
    punkte_Boden = [[A,E,J],[E,J,G],[J,G,C]]

Hier benutzen wir eine Funktion, die Dreiecke mit den ihr übergebenen Eckpunkten graphisch darstellt:

    def zeichne_Dreieck(x,y,z):
            tri = faces(pos = [x,y,z],color=color.red)
            tri.make_twosided()
            tri.make_normals()
 
 
    for Dreieck in punkte_draufsicht:
            zeichne_Dreieck(Dreieck[0],Dreieck[1],Dreieck[2])
    for Dreieck in punkte_Rechtecke:
            zeichne_Dreieck(Dreieck[0],Dreieck[1],Dreieck[2])
    for Dreieck in punkte_Rechtecke_innen:
            zeichne_Dreieck(Dreieck[0],Dreieck[1],Dreieck[2])
    for Dreieck in punkte_Boden:
            zeichne_Dreieck(Dreieck[0],Dreieck[1],Dreieck[2])
 
 
ws1617/dreieckologie_15.12.16.1481819318.txt.gz · Zuletzt geändert: 2016/12/15 17:28 von SoenkeRoos96