Antworten auf deine Fragen:
Neues Thema erstellen

Nützliche Funktionen für COFFEE

nux95

Developer, C4D Betatester

Hi,
ich mach jetzt hier mal einen thread auf, in welchem ihr selbst erstellte nützliche Funktionen posten könnt.


- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

float/int/vector GetArrayAverage(array arr) by nux95
Gibt den Durschnittswert der Inhalte in einem eindimensionalem Array arr aus.
PHP:
GetArrayAverage(arr) {
    var sze, i, rcnt, rtrn;
    sze = sizeof(arr);
    rcnt = 0;
    for (i=0; i<sze; i++) {
        if (arr[i]) {
            rcnt++;
            rtrn += float(arr[i]);
        }
    }
    rtrn = rtrn / rcnt;
    return rtrn;
}
Return: int / float / vector
Parameter:
arr - das zu analysierende Array

float/int/vector GetArrayMM(array arr, bool swh)
by nux95
Gibt den größten bzw kleinsten Wert des eindimesionalen Arrays arr aus.
PHP:
GetArrayMM(arr,swh) {
  var min, max, sze, i;
  sze = sizeof(arr);
  
  for (i=0; i<sze; i++) {
    if (arr[i]) { min = max = arr[i]; }
  }
  for (i=1; i<sze; i++) {
        if(arr[i]) {
        if (arr[i] < min) { min = arr[i]; }
        if (arr[i] > max) { max = arr[i]; }
        }
  }
  switch (swh) {
    case 0:
        return min;
        break;
    case 1:
        return max;
        break;
    default:
        return;
        break;
    }
     return;
}
Return: int / float / vector
Parameters:
arr - das Array aus welchem gelesen wird
swh - 0: kleinster Wert, 1: größter Wert

vector GetBoundingBox(PointObject op)
bynux95
Gibt die größe der Boundingbox von op zurück.
PHP:
GetBoundingbox(op) {  
  if (op->GetType() != 5100) { return false; }
    var pos = op->GetPosition();
  var i;
  var max = op->GetPoint(0) + pos;
  var min = max;
  for (i=1; i < op->GetPointCount(); i++) {
    var p = op->GetPoint(i) + pos;
    if (p.x < min.x) {min.x = p.x;} if (p.x > max.x) {max.x = p.x;}
    if (p.y < min.y) {min.y = p.y;} if (p.y > max.y) {max.y = p.y;}
    if (p.z < min.z) {min.z = p.z;} if (p.z > max.z) {max.z = p.z;}
 }
 return max - min;
}

Return: vector
Parameters:
op - PointObject

int fakultaet(int max)
by barri
Gibt die Fakultät von max aus.
Bsp: Fakultät(4) = 1 * 2 * 3 * 4 = 24

PHP:
fakultaet(max)
{
   var zahl,i; 
   zahl=1;
   for(i=1;i<=max;i++)  {zahl=zahl*i;}

     return zahl;
}


vector floorvec(vector vec)
by nux95
Rundet den vector vec ab.
PHP:
floorvec(vec)  
{
    return vector(floor(vec.x),floor(vec.y),floor(vec.z));
}

Return: vector
Parameters:
vec - der zu bearbeitende Vektor

vector
ceilvec(vector vec)
by nux95

Rundet den vector vec auf.
PHP:
ceilvec(vec) 
{
    return vector(ceil(vec.x),ceil(vec.y),ceil(vec.z));
}

Return: vector
Parameters:
vec - der zu bearbeitende Vektor

void Pause(int msec) by nux95

Pausiert das Script um msec (in Millisekunden).
PHP:
Pause(msec) {
    var t = time();
    var i = 0;
    while((time()-t) < msec) {
        i++;
    }
    println("Paused for ", msec/1000.0," seconds. Count: ", i);
}
Return: none
Parameters:
msec - Die abzuwartende Zeit in Millisekunden
 
Zuletzt bearbeitet:

Mysth

Mod | C4D 3D&5D-Contests

AW: Nützliche Funktionen für COFFEE

Hallo nux95

So einen Thread haben wir doch schon wo es ja auch von dir schon was gibt.

Kann man das nicht dort fortsetzen? Script Sammlung

Oder bezieht sich der Thread hier jetzt nur auf COFFEE?
 

nux95

Developer, C4D Betatester

AW: Nützliche Funktionen für COFFEE

Ausschließlich für COFFEE Gedacht. ^^
Ausserdem sind dort ganze Skripte fertige Schaltungen usw.
Mit einer Funktion ist noch nichts komplett. ;)
 
B

barri

Guest

AW: Nützliche Funktionen für COFFEE

Ich poste es dann auch nochmal hier :)
(passt hier glaub ich sogar besser rein^^)
I

Eine kleine Funktion, die die Fakultät einer Zahl berrechnet.

PHP:
fakultaet(max)  
{ 
  var zahl,i; 
  zahl=1; 
  for(i=1;i<=max;i++)  {zahl=zahl*i;} 

  return zahl; 
}
 

nux95

Developer, C4D Betatester

AW: Nützliche Funktionen für COFFEE

Die Boundingbox, ein wenig optimiert :)

PHP:
GetBoundingbox(op) {
  if (op->GetType() != 5100) { return false; }
    var pos = op->GetPosition();
  var i;
  var max = op->GetPoint(0) + pos;
  var min = max;
  for (i=1; i < op->GetPointCount(); i++) {
    var p = op->GetPoint(i) + pos;
    if (p.x < min.x) {min.x = p.x;} if (p.x > max.x) {max.x = p.x;}
    if (p.y < min.y) {min.y = p.y;} if (p.y > max.y) {max.y = p.y;}
    if (p.z < min.z) {min.z = p.z;} if (p.z > max.z) {max.z = p.z;}
 }
 return max - min;
}
lg nux
 
Zuletzt bearbeitet:

nux95

Developer, C4D Betatester

AW: Nützliche Funktionen für COFFEE

Pause(msec); pausiert das Skript etc. um die angegebenen Millisekunden.

PHP:
Pause(msec) {
    var t = time();
    var i = 0;
    while((time()-t) < msec) {
        i++;
    }
    println("Paused for ", msec/1000.0," seconds. Count: ", i);
}
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.614
Beiträge
1.538.351
Mitglieder
67.525
Neuestes Mitglied
mgtaucher
Oben