我想知道如何通过使用数学方程中的python脚本,例如,球面谐波,等等,建立一个有顶点和面的网格。
如果显示了一个简单函数的示例代码,其余的将由我自己编写。
Ubuntu版本: 12.04
搅拌机版本: 2.62
我找到了很有用的地方,
搅拌器Python:数学网格
最后我给出了一个例子,这是正态分布的情况。
import bpy
import math
# clear mesh and object
for item in bpy.context.scene.objects:
if item.type == 'MESH':
bpy.context.scene.objects.unlink(item)
for item in bpy.data.objects:
if item.type == 'MESH':
bpy.data.objects.remove(item)
for item in bpy.data.meshes:
bpy.data.meshes.remove(item)
for item in bpy.data.materials:
bpy.data.materials.remove(item)
# mesh arrays
verts = []
faces = []
# mesh variables
numX = 100
numY = 100
# variance and scale variables
variance = .35
scale = 4
# fill verts array
for i in range (0, numX):
for j in range(0,numY):
# nomalize range
u = 2*(i/numX-1/2)
v = 2*(j/numY-1/2)
s = variance
x = scale*u
y = scale*v
z = scale*1/math.sqrt(2*math.pi*s*s)*math.exp(-(u*u+v*v)/(2*s*s))
vert = (x,y,z)
verts.append(vert)
# fill faces array
count = 0
for i in range (0, numY *(numX-1)):
if count < numY-1:
A = i
B = i+1
C = (i+numY)+1
D = (i+numY)
face = (A,B,C,D)
faces.append(face)
count = count + 1
else:
count = 0
# create mesh and object
mesh = bpy.data.meshes.new("wave")
object = bpy.data.objects.new("wave",mesh)
# set mesh location
object.location = bpy.context.scene.cursor_location
bpy.context.scene.objects.link(object)
# create mesh from python data
mesh.from_pydata(verts,[],faces)
mesh.update(calc_edges=True)截图:

发布于 2013-07-28 05:26:22
您应该在类似的脚本中搜索。您可能知道,Blender附带了用Python编写的加载项。关于网格的创建,有一些可用的附加组件。您必须启用它们,但它们已安装在您的计算机上。在/usr/share/blender/addons中搜索以查看它们。也许你可以做一些反向工程来回答你的问题。
将您自己的脚本复制到此文件夹。在首选项中也有"install“。您必须在首选项中启用脚本。有点隐蔽。在默认窗口的左上方,您可以看到一个感叹号。单击它并从下拉菜单中选择首选项。然后你必须提高这个栏的高度,才能看到你的喜好。在截图中,您可以看到“增加首选项”栏。选择addon选项卡。在右边,你可以标记“使能副词”。要使这一变化永久化,你必须拯救他们。我已经忘记了捷径,寻找它,也许它的Ctrl+U。
嗯,当我使用Blender的时候,有一个选项可以运行脚本。现在,我只能看到一个控制台。

https://askubuntu.com/questions/325485
复制相似问题