View Full Version : Average two vertices.

 jobw04 April 2006, 01:10 AMHi Im a MEL ignoramus. Im taking a course in a couple of months so hopefully I'll know more then. In the meantime, and as a way to improve my knowledge... What i need to do is find the average of x number of vertices (mostly just two). And then place something (maybe a locator ??) at this point, so as to be able to snap other things to this point. I looked at the script editor when running merge vertices but i couldnt see anything here that might help me. Thanks a bunch.
DezFX
04 April 2006, 01:16 AM
You just need to get their position and add all of the vectors to get a total value. Then divide that value by the number of vectors you added together. That will give you the average (center point) of the group.

john_homer
04 April 2006, 01:20 AM
string \$selList[] = `ls -sl -flatten`;

if (size(\$selList) > 0)
{
string \$i;
vector \$xyz = <<0, 0, 0>>;

for (\$i in \$selList)
{
float \$pos[] = (`pointPosition -w \$i`);
vector \$xyzPos = <<\$pos[0], \$pos[1], \$pos[2]>>;
\$xyz += \$xyzPos;
}

vector \$averagePos = \$xyz / (size(\$selList));
float \$x = \$averagePos.x; float \$y= \$averagePos.y; float \$z = \$averagePos.z;
spaceLocator -p \$x \$y \$z;
}
else
{
error ("select some verts");
}

.j

inverse catheter
04 April 2006, 02:16 AM
.

that was handy .i was just getting 'round to writing something similar .to place a joint in the center of a selection .john 's saved us both the bother

jobw
04 April 2006, 03:30 AM
Bingo thanks John that works a treat. Kudos to you John...Kudos
Whilst im on a good wicket ..Do you know of any scripts that place a point / locator on the intersection of two lines based upon a specified axis plane?
Eg Select line 1 and then line 2 and then it will place a locator on the intersection. Generally the lines wont be on the same plane (ie intersecting in 3d space). So the locator would be projected through a nominated axis (eg xy) onto one of the lines (eg first selected).
cheers

CGTalk Moderation
04 April 2006, 03:30 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.

1