【发布时间】:2013-01-27 03:46:43
【问题描述】:
经过大量工作后,我在 Python 中开发了以下代码来绘制一个向量 [在这种情况下为 (2,2,2)],以便它以您期望的方式指向原点。 我花了一些时间来收集三个旋转参数在横滚、俯仰和偏航方面的含义。您可能需要设置 Euler XYZ。
我使用了一个细长的圆柱体作为我的矢量,这很适合我的目的,也符合我对搅拌机的瘦身体验。这段代码在中途绘制了一个带有箭头的向量(一个圆锥),非常适合我的目的,但有点麻烦。 我适用于大多数向量,但在 x0 and z>0
时失败import bpy
import math
from math import *
x=-5
y=-10
z=12
yParameter=-1.0
if y < 0:
if x < 0:
yParameter = 1.0
#print ("y para is ",yParameter
for i in range (0,1):
length=sqrt(z*z+y*y+x*x)
#Create a vector at correct orientation at the origin
bpy.ops.mesh.primitive_cylinder_add(vertices=16, radius=0.04, depth=length, end_fill_type='NGON', view_align=False, enter_editmode=False, location=(0,0,0),rotation=(-acos(z/sqrt(x*x+y*y+z*z)),0,yParameter*acos(y/sqrt(x*x+y*y))))
bpy.ops.transform.translate(value=(x/2, y/2, z/2))
bpy.ops.mesh.primitive_cone_add(vertices=32, radius1=0.1, radius2=0, depth=0.4, end_fill_type='NGON', view_align=False, enter_editmode=False, location=(0,0,0), rotation=(-acos(z/sqrt(x*x+y*y+z*z)),0,yParameter*acos(y/sqrt(x*x+y*y))))
bpy.ops.transform.translate(value=(x/2, y/2, z/2))
我确信向量和矩阵操作中的庞大 API 应该会使这项工作变得更容易,但我正在努力寻找除了这个自行开发的笛卡尔工作之外的其他方法。
谁能给我一个可以理解的代码 sn-p 或者一个关于如何在 blender python 中操作向量(在数学意义上)的教程
我发现搅拌机 API 对参数的名称以及如何对其进行编码非常清楚,但我几乎找不到参数的实际含义。
【问题讨论】:
-
Python 中的行尾不需要分号。
-
好吧,我想这暴露了我在编程方面的背景,但把它们拿出来,问题还是一样。
标签: python python-3.x blender