ich möchte nach dem "DRY" Motto meinen Code so allgemein und kurz wie möglich schreiben.
Prinzipiell geht es um verschieden geometrische Körper (z.B. Kugel und Wuerfel).
Grundlegende Eigenschaften sind z.B. Position und Orientierung und geometrische Parameter (Radius bei Kugel, Kantenlänge bei Wuerfel usw.).
Für die Bestimmung des Abstandes muss für jeden entsprechenden Körper eine extra Funktion geschrieben werden. Diese Funktionen habe ich momentan in unterschiedlichen Modulen untergebracht.
Mein formaler Beispielcode sieht folgendermaßen aus:
Code: Alles auswählen
import numpy as np
class Koerper():
def __init__(self,pos=np.array([0.,0.,0.]),ori=np.array([1.,1.,1.])):
self.pos = pos
self.ori = ori
self.koerper_para = []
def Abstand(self,Koerper_library,Koerper):
return Koerper_library.Abstand(self,Koerper)
import Wuerfel
Wuerfel_A = Koerper(pos=np.array([1.,2.,3.]),ori=np.array([1.,0.,2.]))
Wuerfel_A.koerper_para=2. # KANTENLÄNGE
Wuerfel_B = Koerper(pos=np.array([-10.,-20.,-33.]),ori=np.array([3.,0.,1.]))
Wuerfel_B.koerper_para=1. # KANTENLÄNGE
print Wuerfel_A.Abstand(Wuerfel,Wuerfel_B)
Meine Frage ist jetzt, ob es da noch eine elegantere Weise gibt, also eine pythonische Art?
Die Methoden sind kompliziert und sollen für jeden geometrischen Körper in einer extra Datei geschrieben werden. Die Abstrakte Klasse Koerper wiederum ist Teil des Hauptprogramms.
Vielen Dank schon mal im Voraus.