我想在Wolfram Mathematica中编写一个程序 我们有两个清单:
list1 = {Sphere[{x1}],Sphere[{x2}],Sphere[{x3}],Sphere[{x4}],Sphere[{x5}]}
list2 = {Sphere[{y1}],Sphere[{y2}],Sphere[{y3}],Sphere[{y4}],Sphere[{y5}]}
我需要通过圆柱“绘制”它们之间的联系,因此我们必须
list3={Cylinder[{x1,y1}],Cylinder[{x2,y2}],Cylinder[{x3,y3}],Cylinder[{x4,y4}],Cylinder[{x5,y5}]}
如何使用任何列表自动执行此操作:list1和list2这类?
答案 0 :(得分:2)
在GraphPlot3D的文档中有一个很好的例子,看起来好像它做了你想要做的事情,但并不完全是你接近问题的方式。
答案 1 :(得分:1)
你没有指定圆柱体的半径,我使用的是相对于第一个圆柱的半径。
centers1 = {{1, 1, 1}, {2, 2, 2}, {3, 3, 3}};
radii1 = {0.2, 0.3, 0.4};
centers2 = {{1, -1, 1}, {2, -2, 2}, {3, -3, 3}};
radii2 = {0.3, 0.3, 0.3};
list1 = Sphere[Sequence @@ #] & /@ Transpose[{centers1, radii1};
list2 = Sphere[Sequence @@ #] & /@ Transpose[{centers2, radii2}];
Show[Graphics3D[{list1, list2, Cylinder[Sequence @@ #] & /@ Transpose[{Transpose[{centers1, centers2}], radii1}]}]]