others - 在 python 中,将一个平面列表转换为两个维 System.Array 类型 array [Array[Point] ]

  显示原文与译文双语对照的内容
0 0

我正在处理 python 中的曲面。 我试图从一个控制点列表中生成一个 NurbsSurface 。 但是,我可以使用的原始数据在平面列表中。 为了创建一个曲面,我需要将数据转换为 array [Array[Point] ],这是系统类中的一个类型。 因为我在 python 中,我最初的想法是创建列表列表,但不幸的是,它被拒绝了。 显式状态表明它只接受 array [Array[Point] ] - 一个二维的array 。


dsControlPoints = [pt1, pt2, pt3, pt4, pt5, pt6, pt7, pt8, pt8, pt9, pt10]
uCount = 2

我尝试了这个并转换成列表列表,因为我知道在U 和V 方向上的点数。


newControlPoints = [dsControlPoints[i:i+uCount] for i in range(0, len(dsControlPoints), uCount)]

这给出了由两个点组成的列表列表:


newControlPoints = [[pt1, pt2], [pt3, pt4], [pt5, pt6], [pt7, pt8], [pt9, pt10]]

我不确定从平面列表或者列表列表中选择什么更容易。 我发现为了创建一个 System.Array,需要调用:


Array.CreateInstance([Point], (5,2))

但这就产生了一个空的array,我不知道如何填充它。 现在我只想把现有列表转换为 array 并把它们附加到另一个 array 中,但这不是附加的东西,我可以在IronPython中调用它,这是我正在使用的一个。

如何将平面列表或者列表列表转换为二维 array [Array[Point] ],这是 System.Array 类型,而不是 python 类型。

谢谢!

时间: 原作者:

0 0

我想你正在使用 IronPython 。 可以像这样创建 2-d array:


from System import Array
array = Array[Array[int]]( ( (1,2), (3,4) ) )

有关更多信息,请阅读这里文档: http://www.ironpython.info/index.php?title=Typed_Arrays_in_IronPython

...