Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
ws1920:cd_08 [2020/03/25 16:35] Zetraeder |
ws1920:cd_08 [2020/03/25 16:52] (aktuell) Zetraeder |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
----- | ----- | ||
- | ====== Aktueller Code ====== | + | ====== Code: Arbeitstermin 08 ====== |
**30.01.2020** | **30.01.2020** | ||
- | [[ws1920:cd_u01|<<]] | [[ws1920:scutoids|Home]] | [[ws1920:arbeitstermin_08|Text]] | [[ws1920:cd_09|>>]] | + | [[ws1920:cd_u01|<<]] | [[ws1920:scutoids|Home]] | [[ws1920:arbeitstermin_08|Text]] | [[ws1920:cd_u02|>>]] |
- | Aktuelle Programmversion | + | Aktueller Code für Blender 3D: |
+ | |||
+ | <code python> | ||
+ | |||
+ | import bpy | ||
+ | from random import * | ||
+ | from math import * | ||
+ | |||
+ | |||
+ | |||
+ | class Sphere: | ||
+ | def __init__(self, pos, 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> |