2011-07-13 29 views
0

要得到的矩阵变换是如何工作的原因我有一个相当很难看到到底发生了什么更好的主意,我决定写一些脚本,将采取一个3D模型,然后做一些翻译,旋转和缩放,因为在我玩弄不同的值时,看看实际发生的情况可能会有所帮助。缩放3D模型,找到原点

我已经写脚本解析3D模型,所以现在我只需要编写变换函数。

我现在用的是欧几里德模块,这其中包括一些建议与矩阵工作(虽然这个问题是不是真的蟒蛇特异性,所以我离开了那个标签)

到目前为止,我已经能够成功根据我提供的x,y,z值转换模型。

现在我工作的缩放功能,并且还设法扩大以任何因素的模型,但我有一个很难得到它的规模“现场”,因为该模型不居中在原点。

如何建立一个变换矩阵,将考虑到一些任意模型的中心?

+1

你有“中心”的一个明确的定义? – Randy

+1

@Randy,没有,但有人告诉我找到模型中的最大和最小的X,Y,Z值,然后取每个组件的平均值,即“中心” – MxyL

回答

2

您可以通过以下改造规模的“周围”点P

translate(scale(translate(model, -P)), P) 

即一个顶点X你有

X' = P + s * (X-P) = s*X + (P-s*P) 
+0

谢谢,我会尽力的。编辑:它的工作! = d – MxyL