jed*_*mao 8 python average maya
甚至还有3D质心这样的东西?让我非常清楚 - 我已经在本网站和网络上阅读和阅读过去2天的质心,所以我完全了解该主题的现有帖子,包括维基百科.
那就是说,让我解释一下我要做的事情.基本上,我想选择边和/或顶点,但不是面.然后,我想将一个对象放在3D质心位置.
我会告诉你我不想要的东西:
我对有关质心的建议持开放态度,但我不知道这是如何工作的,因为顶点或边缘本身并没有定义任何质量,特别是当我选择了一个边缘循环时.
对于踢,我会向你展示我使用@Emile 的代码作为参考的一些PyMEL,但我不认为它的工作方式如下:
from pymel.core import ls, spaceLocator
from pymel.core.datatypes import Vector
from pymel.core.nodetypes import NurbsCurve
def get_centroid(node):
if not isinstance(node, NurbsCurve):
raise TypeError("Requires NurbsCurve.")
centroid = Vector(0, 0, 0)
signed_area = 0.0
cvs = node.getCVs(space='world')
v0 = cvs[len(cvs) - 1]
for i, cv in enumerate(cvs[:-1]):
v1 = cv
a = v0.x * v1.y - v1.x * v0.y
signed_area += a
centroid += sum([v0, v1]) * a
v0 = v1
signed_area *= 0.5
centroid /= 6 * signed_area
return centroid
texas = ls(selection=True)[0]
centroid = get_centroid(texas)
print(centroid)
spaceLocator(position=centroid)
Run Code Online (Sandbox Code Playgroud)
理论上,centroid = SUM(pos*volume)/SUM(volume)当您将零件拆分为有限的体积时,每个体积都具有位置pos和体积值volume.
这正是为找到复合材料零件的重心而进行的计算.
| 归档时间: |
|
| 查看次数: |
5678 次 |
| 最近记录: |