请原谅我,但我只知道如何在VB中编写一些代码,python并不是我所习惯的。我确实试着看看其他人是否做了或者展示了我想要完成的算法。
我有一个视觉设计在我的头脑和我一直试图做的是得到一些立方体(变量输入目前)被放置在一定的距离(可能5-10搅拌器单位)的中心和角度的脸,这样就会有一个脸指向中心和一个脸指向相反的方向。我试着从10个立方体开始,因为我觉得这将是一个公平的数字,希望显示一个圆的形状。
我制作了一个图像来描述我想要做的事情:

到目前为止,我所能得出的结果是,我需要添加一个具有特定旋转的立方体,并且每个立方体的旋转都需要步长。所以需要一个小的等式,就像这样。
(10) (36)
360 / numberOfCubes = steppedAngle这就是我所能知道的,因为我不知道如何编程python来做到这一点。
任何帮助都将受到极大的感谢,并将在最终渲染中得到确认。
最新情况:1
多亏了下面答案的帮助,我终于得到了我想要的结果。WVDU0j.png
这是在下面的答案帮助下编写的代码。‘导入bpy导入数学
##num of cubes
n = 10
##distange from center
radius = 7
for i in range(1, n + 1):
angle = (i - 1) * math.pi * 2 / n
xcoord=(radius * math.cos(angle))
ycoord=(radius * math.sin(angle))
bpy.ops.mesh.primitive_cube_add(location=(xcoord,ycoord,0),rotation=(0,0,angle))‘
发布于 2014-02-05 11:07:15
让我们从一个圆的立方体开始,我们将从那里开始工作。
你有N个立方体,你想把它们放在半径R的圆圈里,围绕宇宙中心(0,0,0)。
应用基本三角函数:每个立方体位于圆的一个半径上,当你除以N时,你的第一个立方体在0rad,第二个立方体在2*pi/N rad,第三个立方体在2* 360/N rad,.你的N立方体在(N-1) * 2*pi/N。现在我们有了一个公式:立方体在圆中的位置=(i-1)* 2*pi/N,对于从1到N的每一个i,现在在空间坐标中的位置是(r*cos(角),r*sin(角),0),它的中心在(0,0,0)上。
我的Blender Python非常生疏,所以我不会为您提供一个完整的解决方案,但是应该是这样的:
import math
for i in range(1, N + 1):
angle = (i - 1) * math.pi * 2 / N
x_coord = radius * math.cos(angle)
y_coord = radius * math.sin(angle)
z_coord = 0
cube = place_cube(x_coord, y_coord, z_coord)这将把立方体放在正确的坐标上,但它不会使它们朝着正确的方向转变。幸运的是,您可以按角度旋转每个立方体,并使其处于正确的方向。所以你可以:
import math
for i in range(1, N + 1):
angle = (i - 1) * math.pi * 2 / N
x_coord = radius * math.cos(angle)
y_coord = radius * math.sin(angle)
z_coord = 0
cube = place_cube(x_coord, y_coord, z_coord)
cube.rotate_around_z(angle)我没有提供place_cube和rotate_around_z函数,因为我几乎不记得混合器Python,但它不应该太难。
https://stackoverflow.com/questions/21574926
复制相似问题