C# 获取WPF中Viewport3D中所有Point3D的列表
是否有简单的方法返回WPF中Viewport3D对象中存在的所有Point3D的列表?我需要此集合来确定XYZ边界,以便我可以定位摄影机,使所有Point3D都在视野内C# 获取WPF中Viewport3D中所有Point3D的列表,c#,wpf,3d,viewport3d,C#,Wpf,3d,Viewport3d,是否有简单的方法返回WPF中Viewport3D对象中存在的所有Point3D的列表?我需要此集合来确定XYZ边界,以便我可以定位摄影机,使所有Point3D都在视野内 如果没有简单的方法,我需要迭代哪些集合以确保捕获所有Point3D?我们需要遍历一个非常长的层次结构才能获得所需的数据 Viewport3D.Children返回一个Visual3DCollection对象,该对象包含一组Visual3D Visual3D有3个子类;我们对ModelVisual3D ModelVisual3D
如果没有简单的方法,我需要迭代哪些集合以确保捕获所有Point3D?我们需要遍历一个非常长的层次结构才能获得所需的数据
返回一个Viewport3D.Children
对象,该对象包含一组Visual3DCollection
Visual3D
有3个子类;我们对Visual3D
ModelVisual3D
返回另一个ModelVisual3D.Children
;您可以清楚地看到根目录下带有Visual3DCollection
的递归树结构Viewport3D
返回一个ModelVisual3D.Visual3DModel
对象Model3D
有3个子类;我们对Model3D
和GeometryModel3D
Model3DGroup
是Model3DGroup.Children
的另一个列表;因此,我们有两层递归包含Model3D
返回一个GeometryModel3D.Geometry
对象Geometry3D
- 奇怪的是,
只有一个子类Geometry3D
MeshGeometry3D
最后给出了点的原始列表MeshGeometry3D.Positions
请注意,这些点位于其父对象的本地基础中。为了获得世界坐标,在遍历层次时,必须累积遇到的任何
Model3D
对象的变换列表,并使用它们变换输出点
返回一个Model3D.Transform
对象Transform3D
有3个子类-Transform3D
,AffineTransform3D
和MatrixTransform3D
;但是,我们不需要单独处理它们Transform3D组
非常简单Transform3D.Transform(Point3D)
- 我看不到两个
类之间的乘法运算符(除了Transform3D
),因此对于每个MatrixTransform3D
,必须以相反的顺序遍历变换列表,并连续应用每个变换Point3D
以上总结了为什么几乎没有人使用WPF进行3D开发。。。应该为您保留的讨论。为了获得您想要的数据,我们需要遍历一个非常冗长的层次结构
返回一个Viewport3D.Children
对象,该对象包含一组Visual3DCollection
Visual3D
有3个子类;我们对Visual3D
ModelVisual3D
返回另一个ModelVisual3D.Children
;您可以清楚地看到根目录下带有Visual3DCollection
的递归树结构Viewport3D
返回一个ModelVisual3D.Visual3DModel
对象Model3D
有3个子类;我们对Model3D
和GeometryModel3D
Model3DGroup
是Model3DGroup.Children
的另一个列表;因此,我们有两层递归包含Model3D
返回一个GeometryModel3D.Geometry
对象Geometry3D
- 奇怪的是,
只有一个子类Geometry3D
MeshGeometry3D
最后给出了点的原始列表MeshGeometry3D.Positions
请注意,这些点位于其父对象的本地基础中。为了获得世界坐标,在遍历层次时,必须累积遇到的任何
Model3D
对象的变换列表,并使用它们变换输出点
返回一个Model3D.Transform
对象Transform3D
有3个子类-Transform3D
,AffineTransform3D
和MatrixTransform3D
;但是,我们不需要单独处理它们Transform3D组
非常简单Transform3D.Transform(Point3D)
- 我看不到两个
类之间的乘法运算符(除了Transform3D
),因此对于每个MatrixTransform3D
,必须以相反的顺序遍历变换列表,并连续应用每个变换Point3D
以上总结了为什么几乎没有人使用WPF进行3D开发。。。这是一个应该保留的讨论。我需要一个关于这个邪恶混乱的层次结构中所有嵌套的摘要,而你的答案实际上是一个可靠的参考。@bokibeg同样,“邪恶混乱”是一个可靠的描述。我需要一个层次结构中所有嵌套的摘要,而你的答案实际上是一个可靠的参考。@bokibeg同样,“邪恶混乱”是一个可靠的描述。