Benutzer-Werkzeuge

Webseiten-Werkzeuge


ws1920:arbeitstermin_08

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ws1920:arbeitstermin_08 [2020/02/09 20:34]
Zetraeder
ws1920:arbeitstermin_08 [2020/04/02 15:36] (aktuell)
Zetraeder [Achter Arbeitstermin]
Zeile 4: Zeile 4:
 **30.01.2020** **30.01.2020**
  
-[[ws1920:​update_01|<<​]] | [[ws1920:​scutoids|Home]] | [[ws1920:​update_02|>>​]]+[[ws1920:​update_01|<<​]] | [[ws1920:​scutoids|Home]] | [[ws1920:​cd_08|Code]] | [[ws1920:​update_02|>>​]]
  
-Code-Schnipsel ​Blender ​3D.+Heute haben wir versucht, grundlegende Strukturen in Blender ​zu implementieren. Hierfür haben wir uns mit der Erstellung von Meshes durch Python in Blender informiert und eine Methode generateObj geschrieben,​ mit der wir Objekte einfach erstellen können, ohne uns jedes Mal mit den spezifischen Blender Python Befehlen herumschlagen zu müssen.
  
-<code python>+Die Parameter machen hierbei eine reibungslose Benutzung möglich: 
 +  *name  - Namen des Objektes 
 +  *verts - die Punkte, die das Objekt beschreiben (in Blender werden diese vertices genannt) 
 +  *faces - eine Liste von verschiedenen Punktmengen,​ die die Flächen des Objektes beschreiben 
 +  *loc   - die Position des Objektes als xyz - Koordinate
  
-import bpy +{{ :​ws1920:​blender_first_try.jpg?​144|}}
-from random import * +
-from math import *+
  
- +Außerdem haben wir einen ersten Versuch getätigteine Delaunay-Tetraedisierung zu generierenDies klappt insoferndass es von außen recht überzeugend aussiehtLeider klassifiziert das Programm noch nichtsondern zeichnet lediglich alle Möglichkeiten der Bildung von Tetraeder aus der gegebenen Punktmenge.\\ (Klicke das Bild für die Originalgröße an)
- +
-class Sphere: ​    +
-    def __init__(selfpos, radius): +
-        self.pos = pos +
-        self.radius = radius +
-     +
-    def punktInKugel(self,​ p): +
-        if (abstandPunkte(self.pos,​p) < self.radius):​ print(">>​ Punkt in Kugel"​) +
-        else: print(">>​ Punkt außerhalb Kugel"​) +
-         +
-def abstandPunkte(p1,​p2):​ +
-    a = sqrt(((p1[0]-p2[0])**2) + ((p1[1]-p2[1])**2) + ((p1[2]-p2[2])**2)) +
-    return a +
- +
-def genPunkt(pos):​ +
-    verts = [(0.1,0.1,0.1),(-0.1,​0.1,​0.1),​(-0.1,​-0.1,​0.1),​(0.1,​-0.1,​0.1) +
-            ,​(0.1,​0.1,​-0.1),​(-0.1,​0.1,​-0.1),​(-0.1,​-0.1,​-0.1),​(0.1,​-0.1,​-0.1)] +
-    faces = [(0,​1,​2,​3),​(4,​5,​6,​7),​(0,​1,​4,​5),​(1,​2,​4,​5),​(2,​3,​6,​7),​(3,​0,​7,​4)] +
-    generateObj("​Punkt",​verts,​faces,​pos) +
- +
-def generateObj(name,​verts,​faces,​loc):​ +
-    mymesh = bpy.data.meshes.new(name) +
-    myobject = bpy.data.objects.new(name,​mymesh) +
- +
-    myobject.location = loc #(0,0,0) #​bpy.context.scene.cursor.location +
-    bpy.context.collection.objects.link(myobject) +
- +
-    mymesh.from_pydata(verts,​[],​faces) +
-    mymesh.update(calc_edges=True) +
-     +
-     +
- +
-#v = [(-10,​0,​0),​(10,​10,​0),​(10,​-10,​0),​(0,​0,​10)] ​    +
-     +
-#f = [(0,​1,​2),​(1,​2,​3),​(2,​3,​0),​(3,​0,​1)] +
-     +
-#​generateObj("​tetraeder",​ v, f) +
- +
- +
-#   ​Variablen +
-anzahlKerne = 10    #   ​anzahl der Kerne, ​die generiert werden sollen +
-ker = []            #   Liste mit zufälligen Kernen drin +
- +
- +
- +
-#   Setup Kerne +
-for i in range(0, anzahlKerne):​ +
-    x = randint(0,​10);​ +
-    y = randint(0,​10);​ +
-    z = randint(0,​10);​ +
-     +
-    ker.append((x,​y,​z)) +
-     +
-print(ker) +
-for i in ker: +
-    genPunkt(i) +
- +
-#   ​Überprüfung,​ ob Kerne auf einem Kreis -> dann diese Tetraeder bauen +
-for i in range(0, len(ker)):​ +
-    for j in range(i+1, len(ker)):​ +
-        for k in range(j+1, len(ker)):​ +
-            for l in range(k+1, len(ker)):​ +
-                 +
-                verts = (ker[i], ker[j], ker[k], ker[l]) +
-                faces = [(0,​1,​2),​(1,​2,​3),​(2,​3,​0),​(3,​0,​1)] +
-                 +
-                generateObj("​Tetraeder",​ verts, faces, (0,0,0)) +
- +
-</​code>​+
  
 ---- ----
  
ws1920/arbeitstermin_08.1581276897.txt.gz · Zuletzt geändert: 2020/02/09 20:34 von Zetraeder