gpt4 book ai didi

python - mlab 中的简单箭头 mayavi/tvtk 奇怪的行为(看起来像一个错误)

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:57 24 4
gpt4 key购买 nike

我想在 mlab 中做一个简单的箭头来指向图表上的不同区域。考虑这个例子:

fig = mlab.figure( bgcolor=(0, 0, 0))
b=visual.Box(x=0, y=10, z=10)
visual.set_viewer(fig)
b=visual.Box(x=0, y=10, z=10)
b2=visual.Box(x=10,y=10,z=10, color=(0,0,1))
a=visual.Arrow(x=10,y=10,z=10, color=(1,0,0))

所以在我看来,箭头应该出现在蓝色框内,但它过着自己神秘的生活,并且完全偏离了。盒子被定位并绑定(bind)到网格是非常奇怪的(所以如果我把 b 放到 x=10,y=10,z=10 两个盒子将并置),但是箭头不是。 This is what I see这是错误还是功能?

更新:

我正在尝试解决上述问题,发现箭头的行为非常奇怪。这就是我所做的(在 ipython 中进行交互):

from mayavi import mlab
from tvtk.tools import visual
fig=mlab.figure( bgcolor=(0, 0, 0))
visual.set_viewer(fig)

首先将盒子放在 Canvas 上的某处作为引用:

b=visual.Box(x=10,y=4,z=1)

然后我想要一个从盒子里伸出来的箭头:

a=visual.Arrow(x=10,y=4,z=1)

没有解决(与问题的第一部分相同):

Arrow_error

现在,让我们无缘无故地改变锥体的长度

a.length_cone

返回

0.35

让我们改变它

a.length_cone=0.5

现在箭头应该是从盒子里伸出来的 Arrow_error

将圆锥体的长度改回 0.35,看看这是否会将箭头改回错误的位置

a.length_cone=0.35

不,箭头停留在它应该在的框中。这看起来像一个错误。

最佳答案

玩转箭头,我编写了以下函数来生成从 x1,y1,z1x2,y2,z2

的箭头
def Arrow_From_A_to_B(x1, y1, z1, x2, y2, z2):
ar1=visual.arrow(x=x1, y=y1, z=z1)
ar1.length_cone=0.4

arrow_length=np.sqrt((x2-x1)**2+(y2-y1)**2+(z2-z1)**2)
ar1.actor.scale=[arrow_length, arrow_length, arrow_length]
ar1.pos = ar1.pos/arrow_length
ar1.axis = [x2-x1, y2-y1, z2-z1]
return ar1

关于python - mlab 中的简单箭头 mayavi/tvtk 奇怪的行为(看起来像一个错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20085398/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com