2012-01-29 84 views
0

我有一个Viewport3D对象,其中包含分层Model3D对象(分组在Model3DGroups中)的场景。
我需要将2D对象“附加”到场景中的3D元素。
我读了一些关于3D投影的文章,但我无法完全理解如何将WPF场景数据应用到这些解决方案。
这样做的正确方法是什么?我也试过Petzold.Media3D库,但我不知道如何使用它...将2D对象附加到WPF中的3D对象

感谢

+0

[将三维点投影到二维屏幕坐标]的可能副本(具体请参见http://stackoverflow.com/questions/519106/projecting-a-3d-point-to-a-2d-screen-coordinate) [使用'TransformToAncestor']检查此答案(http://stackoverflow.com/a/2037128/7116)。 – user7116 2012-01-29 16:02:19

+0

不完全是,我在这些解决方案中缺少的是如何获得我想附加到的对象在3D空间中的位置... – Oren 2012-01-29 17:41:35

+0

您的标题说明了3D对象的2D位置,这是其他答案需要。然后,您可以使用2D位置将对象放置在3D对象顶部的画布或网格中。如果这不是你想要的,你应该相应地修改你的标题。 – user7116 2012-01-29 17:44:19

回答

1

我认为你正在寻找Viewport2DVisual3D class。它允许您将任何Visual2D渲染到3D空间中。

在网上搜索关于这门课程的更多信息将会给你解释它如何工作的例子和视频。

无论如何,如果你正在做任何WPF 3D,你还需要知道Helix Toolkit - 一个很棒的(免费的)WPF 3D工具包。

它最近增加了两个类,也可能是有关你在做什么:

  • BillboardVisual3D(四是始终面临着摄像头)和
  • TextBillboardVisual3D(文字总是面向相机)。

如果您想制作一些必须始终面向3D相机的2D图像,这些功能非常有用。

+0

谢谢,似乎解决了我正在寻找的内容 - 我需要显示附加到3D对象但始终面向相机的对象。我会研究它并更新... – Oren 2012-01-30 09:01:49

+0

我检查了这个工具包,虽然它非常丰富,但它没有解决这个问题 – Oren 2012-01-31 16:42:52