""" Coupled Logistic Map Bifurkation 02.01.2021 www.3d-meier.de """ import c4d # Variablen und Konstanten Titel = 'Coupled Logistic Feige' # Name a = 1.1 # Konstante a bMin = 0.0 bMax = 4.0 Nb = 4000 # Unterteilung b Nv = 500 # Anzahl Punkte verwerfen N = 1000 # Anzahl Punkte berechnen dx = 1.0 # Kantenlaenge Quadrat x0 = 0.3 # Startwert x y0 = 0.1 # Startwert y xFaktor = 1000 # Skalierungsfaktor yFaktor = 3000 # Skalierungsfaktor def CreatePolygonObject(): obj = c4d.BaseObject(c4d.Opolygon) obj.ResizeObject(4*N*Nb, N*Nb) obj.SetName(Titel) # Zaehler fuer Punkte setzten zz = 0 # Zaehler fuer Polygone setzten zzz = 0 # Konstante a # Schrittweite db = (bMax-bMin)/Nb for k in xrange(0,Nb): b=bMin+k*db # Startwerte uebergeben xa = x0 y = y0 # Punkte verwerfen for i in xrange(0,Nv): # Neuen Wert berechnen x=(1-a)*b*(1-xa)*xa+a*b*(1-y)*y y=(1-a)*b*(1-y)*y+a*b*(1-xa)*xa # x Werte aktualisieren xa=x; # Punkte berechnen for i in xrange(0,N): # Neuen Wert berechnen x=(1-a)*b*(1-xa)*xa+a*b*(1-y)*y y=(1-a)*b*(1-y)*y+a*b*(1-xa)*xa # x Werte aktualisieren xa=x; # Polygon erzeugen if abs(x) <= 1: obj.SetPoint(zz, c4d.Vector((b*xFaktor-dx/2.0),(x*yFaktor+dx/2.0),0)) zz=zz+1 obj.SetPoint(zz, c4d.Vector((b*xFaktor-dx/2.0),(x*yFaktor-dx/2.0),0)) zz=zz+1 obj.SetPoint(zz, c4d.Vector((b*xFaktor+dx/2.0),(x*yFaktor+dx/2.0),0)) zz=zz+1 obj.SetPoint(zz, c4d.Vector((b*xFaktor+dx/2.0),(x*yFaktor-dx/2.0),0)) zz=zz+1 obj.SetPolygon(zzz, c4d.CPolygon(zz-1,zz-2,zz-4,zz-3)) zzz=zzz+1 obj.Message(c4d.MSG_UPDATE) return obj def main(): plyobj = CreatePolygonObject() doc.InsertObject(plyobj, None, None, True) c4d.EventAdd() if __name__=='__main__': main()