Antworten auf deine Fragen:
Neues Thema erstellen

Summe der iterierten Punkte ausrechnen

S

Stollentroll1

Guest

Hallo Leute,
habe folgendes Problem und hoffe, dass ihr mir bei der Lösung helfen könnt. Ich will eine XPresso-Schaltung bauen, die den Flächeninhalt eines beliebigen Polygonobjekts berechnet. Die eigentliche Rechnung ist nicht wirklich das Problem und mit ein bisschen Hirnschmalz schnell gelöst:

-iteriere über alle Polygone
-berechne ihre Flächeninhalte
-summiere diese auf

Da ich jedoch noch nie mit einer "grafischen" Skriptsprache gearbeitet habe, weiß ich nicht, wie ich die zuletzt genannte Summe aller Polygonflächen ausrechne. Kann man sich irgendwie einen Hilfsknoten definieren, der die ausgerechneten Werte aus den einzelnen Iterationsschritten aufsummiert?
 

nux95

Developer, C4D Betatester

AW: Summe der iterierten Punkte ausrechnen

Also wenn du den Flächenihalt schon berechnet hast dann verwende einfach das Mathe-node. Oder hab ich was falsch verstanden ? :eek:
 

CUBEMAN

Polyboy

AW: Summe der iterierten Punkte ausrechnen

Polygon ist ja nicht gleich Polygon. Mir ist schleierhaft, wie Du da den individuellen Flächeninhalt ermitteln willst?

Grüße, CUBE
 

siousu

Hat es drauf

AW: Summe der iterierten Punkte ausrechnen

hmm...
man könnte alle Polygone triangulieren. Dann wäre zumindest die Fläche der einzelnen Dreiecke schnell berechnet. (Vektorgeometrie)
Nur das Addieren der einzelnen Flächen könnte sich wirklich schwierig gestalten.
Vielleicht kann man ja was mit dem Speichernode machen... wer weiss^^
 

NT2005

Von dannen.

AW: Summe der iterierten Punkte ausrechnen

Hallo Stollentroll1,

Das würde ich nicht per XPRESSO-Schaltung angehen. Das ganze würde ich über einen C.O.F.F.E.E.-NODE machen, indem dein Vorhaben ablaufen wird.

Hier der Code:
Code:
main(doc,op)
{
if (!instanceof(op, PolygonObject)) return false;
var p_cnt=op->GetPolygonCount();
var poly, punkte, A, B, C, D, FI=0;
var i;
if (p_cnt==0) return false;
poly=op->GetPolygons();
punkte=op->GetPoints();

for (i=0; i<p_cnt; i++)
    {
    A=punkte[poly[i*4]];
    B=punkte[poly[i*4+1]];
    C=punkte[poly[i*4+2]];
    D=punkte[poly[i*4+3]];
    
    FI=FI+0.5*vlen(vcross(B-A,D-A))+0.5*vlen(vcross(B-C,D-C));
    }

println(FI);
}
Das ganze muss natürlich angepasst werden an die Ein- und Ausgabeports.
 
Zuletzt bearbeitet:
S

Stollentroll1

Guest

AW: Summe der iterierten Punkte ausrechnen

danke für eure Antworten,
hat mir sehr geholfen. Wollte unbedingt eine XPresso-Schaltung haben um diese einem Kumpel, der nicht programmieren kann verständlich zu machen. Werde dann wohl den für mich einfacheren Weg nehmen und das ganze in COFFEE umsetzen.
P.S.: besonderer dank an NT2005. Werde mal gleich deine Lösung ausprobieren.
 
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.611
Beiträge
1.538.342
Mitglieder
67.524
Neuestes Mitglied
BSKGA
Oben