Brüggz
Erfahrenes Mitglied
Gibt es in COFFEE eine Möglichkeit, Rechenoperationen unkompliziert mit mehreren Vektoren durchuführen?
Wer es kennt, ich bin bei dem Videotutorial vom Königsmark Abschnitt COFFEE und Punkte. Da richtet er eine Kugel an einem selektierten Punkt eines Würfels aus.
Ich wollte nun einen Schritt weitergehen und bei mehreren selektierten Punkten die Durchschnittsposition für die Kugel zu berechnen.
Allerdings will es net so recht klappen, da Vektoren zu addieren.
Folgend der normale, funktionierende Code mit rot markiert meinen Änderungen:
mit dieser Zeile:
meine ich eigentlich die Errechnung des Durchschnitts der Vektoren, keine Ahnung wie das gemacht wird.
Also von der Logik her sollte der Zusatz ja stimmen: i zählt hoch, ist Punkt[i] ein selektierter, dann übergib die Position an posP und addiere diese zu PosGes, i zählt weiter hoch und das Ganze geht von vorn los und sollte demnach weiter Positionen addieren bzw. den Durchschnitt berechnen.
btw. hallo Mark
Wer es kennt, ich bin bei dem Videotutorial vom Königsmark Abschnitt COFFEE und Punkte. Da richtet er eine Kugel an einem selektierten Punkt eines Würfels aus.
Ich wollte nun einen Schritt weitergehen und bei mehreren selektierten Punkten die Durchschnittsposition für die Kugel zu berechnen.
Allerdings will es net so recht klappen, da Vektoren zu addieren.
Folgend der normale, funktionierende Code mit rot markiert meinen Änderungen:
Code:
main(doc,op)
{
var kugel=op->GetDown();
// wenn op-Objekt kein Polygonobjekt und kein Unterobjekt, dann Stop
if (!instanceof(op, PolygonObject)) return false;
if (kugel==NULL) return false;
var punkte=op->GetPoints();
var p_anz=op->GetPointCount();
var p_sel=op->GetPointSelection();
var p_sel_anz=p_sel->GetCount();
var i, a, posP, posGes;
// wenn entweder keine Punkte vorhanden oder selektiert, dann Stop
if (p_anz==0 || p_sel_anz==0) return false;
for (i=0; i<p_anz; i++)
{
if (p_sel->IsSelected(i))
{
posP=punkte;
}
posGes=(posGes.x+posP.x)/2...
}
kugel->SetPosition(posP); kugel->SetPosition(posGes);
println (posP); println (posGes);
}
mit dieser Zeile:
Code:
posGes=(posGes.x+posP.x)/2...
Also von der Logik her sollte der Zusatz ja stimmen: i zählt hoch, ist Punkt[i] ein selektierter, dann übergib die Position an posP und addiere diese zu PosGes, i zählt weiter hoch und das Ganze geht von vorn los und sollte demnach weiter Positionen addieren bzw. den Durchschnitt berechnen.
btw. hallo Mark
