Formeln

Allgemeines

Die Funktionen Formel-Spline, Formel-Animation sowie der Formel-Deformer u.a. deuten darauf hin: In CINEMA 4D können mathematische Formeln eingegeben werden. Doch nicht nur an diesen markanten Stellen ist dies möglich – nein! – an jeder beliebigen Stelle im Programm, an der Sie Werte eingeben können (z.B. im Attribute-Manager), dürfen statt eines fixen Zahlenwertes solche Ausdrücke gesetzt werden. Lassen Sie CINEMA 4D für sich rechnen!

Im Folgenden erhalten Sie eine Liste aller möglichen Einheiten, Operatoren, Funktionen und Konstanten.

Als Dezimaltrenner verwenden Sie bitte ausschließlich den Punkt . – kein Komma. Sollte im ein oder anderen Eingabefeld auch mal ein Komma akzeptiert werden, geschieht dies eher per Zufall und ist auch von Ihren Betriebssystem-Einstellungen abhängig. Tausender-Trennzeichen sind generell nicht zulässig. Leerzeichen können zur besseren Übersicht genutzt werden, haben aber keinen Einfluss auf die Formelauswertung.

Argumente wie beispielsweise bei mod(a;b) müssen mit einem Semikolon oder mittels eckiger Klammern [] (dann ohne runde Klammern) getrennt werden.

rnd(100) ist das Gleiche wie rnd[100] und rnd(100;234) das Gleiche wie rnd([100][234]).


Mathematische Operatoren, Konstanten und Funktionen
Symbol / Funktion Bedeutung Beispiel
Rechenoperatoren
+ Addition 144+14 = 158
- Subtraktion 144-14 = 130
* Multiplikation 144*2 = 288
/ Division 144/12 = 12
() Klammern (3+4)*2 = 14
Einheiten
km Kilometer 1km = 1000m
m Meter 1m = 100cm
cm Zentimeter 1cm = 0.01m
mm Millimeter 1mm = 0.001m
um Mikrometer 1um = 0.000001m
nm Nanometer 1nm = 0.000000001m
mi Meile 1mi = 1609.344 m
yd Yard 1yd = 0.914m
ft Fuß 1ft = 0.305m
in Zoll 1in = 0.025m
B Bildnummer  
Logische Operatoren
= Ist gleich 1km = 1000m
== Ist identisch Positives Signal (true), wenn die Werte links und rechts von '==' identisch sind
> Größer als Positives Signal (true), wenn der Wert links von '>' größer als der Wert hinter '>' ist
< Kleiner als Positives Signal (true), wenn der Wert links von '<' kleiner als der Wert hinter '<' ist
>= Größer gleich Positives Signal (true), wenn der Wert links von '>=' größer oder gleich dem Wert hinter '>=' ist
<= Kleiner gleich Positives Signal (true), wenn der Wert links von '<=' kleiner oder gleich dem Wert hinter '<=' ist
!= Ungleich Positives Signal (true), wenn die Werte links und rechts von '!=' nicht identisch sind
! Nicht Umkehrung einer Eigenschaft. Aus true wird false und umgekehrt.
|| bzw. or Oder Positives Signal, wenn entweder die Eigenschaft vor oder hinter '||' true ist
&& bzw. and Und Positives Signal, wenn die Eigenschaften vor und hinter '&&' true sind
& Bitweises Und
| Bitweises Oder
^ Exkl. bitweises Oder
~ Bitweises Nicht
?(a;b) Ternärer Operator Ist die vorangestellte Bedingung erfüllt, wird 'a' ausgegeben, sonst 'b':
(3>4)?(10;20) = 20
Konstanten
e Eulersche Zahl ≈ 2.71828
pi Kreiszahl Pi ≈ 3.14159
pi05 Ein halbes Pi ≈ 1.57079
pi2 Doppeltes Pi ≈ 6.28318
piinv Inverses Pi 1/pi ≈ 0.31831
pi05inv Inverses halbes Pi 1/pi05 ≈ 0.63662
pi2inv Inverses doppeltes Pi 1/pi2 ≈ 0.159155
Funktionen
sin(a) Sinus
cos(a) Kosinus
acos(a) Arcus Kosinus
asin(a) Arcus Sinus
tan(a) Tangens
atan(a) Arcus Tangens
cosh(a) Kosinus Hyperbolicus
sinh(a) Sinus Hyperbolicus
tanh(a) Tangens Hyperbolicus
floor(a) Abrunden floor(11.8) = 11
ceil(a) Aufrunden ceil(11.2) = 12
round(a) Runden round(11.8) = 12
round(11.2) = 11
abs(a) Absolutwert abs(-11.3) = 11.3
sqr(a) Quadratische Potenz sqr(5) = 52 = 25
sqrt(a) Quadratwurzel sqrt(25) = 5
exp(a) Exponentialfunktion exp(5) = 148.4132
log10(a) Logarithmus zur Basis 10 log10(100) = 2
log(a) Logarithmus zur Basis e log(e) = 1
trunc(a) Abschneiden von Nachkommastellen trunc(-1.893) = -1
rnd(a{;b}) Zufälliger Wert zw. 0 und a; opt. mit b als Startwert -
pow(a;b) Potenz pow(2;3) = 23 = 8
mod(a;b) Modulo mod(10;4) = 10 - 2*4 = 2
mod(15;3) = 15 - 5*3 = 0
clamp(a;b;c) Wert c auf den Bereich zwischen a und b begrenzen clamp(2;6;10) = 6
clamp(2;6;1) = 2
min(a;b) Minimum beider Werte min(4;7) = 4
max(a;b) Maximum beider Werte max(4;7) = 7
(a)<<(b) oder
(a)shl(b)
Bitweise nach links verschieben 1<<4 = 16
(a)>>(b) oder
(a)shr(b)
Bitweise nach rechts verschieben 1000>>4 = 16
len(x;y{;z}) Länge eines 2D-/3D-Vektors len(1;1) = 1.414
len(1;1;1) = 1.7321

Geschweifte Klammern (z.B. "rnd(a{;b})") symbolisieren optionale, also nicht zwingend einzugebende Werte.
Beachten Sie auch die speziellen Variablen im Zusammenhang mit Mehrfachselektion im nächsten Absatz.

Erweiterte Formeleingabe bei Mehrfachselektionen

Überall dort, wo im Attribute-Manager Zahlen eingegeben werden können, ist es möglich, bei mehreren gleichzeitig selektierten Objekten Formeln in gemeinsamen Parameter-Feldern einzugeben, um den jeweiligen Wert auf verschiedene Arten zu ändern.

Es gibt dabei folgende Variablen:

und diese Funktion:

Beispiele:

Tipp:Wenn Sie Farbwerte auf diese Art und Weise definieren wollen, so klicken Sie mit der rechten Maustaste auf Farbe und wählen Sie aus dem Kontextmenü Unterkanäle anzeigen. Bei diesen Unterkanälen funktionieren dann diese Methoden.

Einheiten

Sie haben die Möglichkeit, unabhängig von der in den Voreinstellungen gewählten Einheit eine eigene anzugeben.

HinweisWenn Sie in den Voreinstellungen die Basiseinheit von Meter auf Millimeter oder Fuß ändern, werden wirklich nur die Einheiten vertauscht, nicht jedoch Objekte skaliert. In Eingabefeldern können Sie jedoch 1m + 10 in eingeben, und erhalten dann 1.254 m.

Funktionen

HinweiseDie Funktionsargumente müssen meistens in Klammern gefaßt werden. Die Anzahl der öffnenden muss gleich der Anzahl der schließenden Klammern sein. Funktionen dürfen geschachtelt werden, z.B. sin(sqr(exp(pi))).

Das Argument trigonometrischer Funktionen wird immer in Grad interpretiert. So bedeutet die Eingabe von sin(2*pi) nicht etwa die Berechnung des Sinus von 360°, sondern nur für ca. 6,283°.

Allgemeines

Mit den soeben beschriebenen Möglichkeiten sollten Sie in der Lage sein, auch die komplexesten Aktionen genau zu erstellen. Denken Sie daran, Sie können die verschiedenen o.g. Punkte beliebig mischen. So wäre folgende Eingabe durchaus denkbar:

2 km + exp (sin (4 mm * pi)) / ((sin (14 cm)) ^ 2 + (cos (14 cm)) ^ 2)

Mit den logischen Operatoren sind beispielsweise solche Konstrukte möglich:

(rnd(100)<50)?(100;200)

Hier wird mit einer jeweils ca. 50% Wahrscheinlichkeit der Wert "100" bzw. "200" ausgespuckt, indem Zufallszahlen zwischen 0 und 100 gebildet werden ("rnd(100)"). Es erfolgt dann eine Abfrage, ob diese kleiner als 50 sind, wenn ja, wird "100" ausgegeben, wenn nicht "200".