W. Mathematica--图形 - 制作领域

时间:2012-05-22 13:22:38

标签: graphics 3d wolfram-mathematica

我想在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这类?

2 个答案:

答案 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}]}]]

graphics3d