Получить положение экрана Point3d - PullRequest
0 голосов
/ 12 марта 2019

У меня есть приложение WPF AR, где у меня есть Canvas с потомком Viewport3D.Я хотел бы знать, есть ли простой способ получить положение точек на экране в указанном Viewport3D.

Точки находятся в объекте Model3DGroup, все они являются его потомками, и я могу получить их положение в этой трехмерной плоскости с помощью: model.Children [i] .Bounds.Location как Point3D.Однако, что мне нужно, это положение объектов на экране, которое совпадает с его положением в окне просмотра.

Просматривая некоторые другие посты, я обнаружил, что есть простой способ сделать это, еслигде ModelView3D можно использовать метод TransformToAncestor, чтобы легко получить эти координаты.Есть ли подобный способ сделать это в этом случае?

public Point Get2DPoint(Model3DGroup model, Viewport3D viewport) 
{
   double screenX = 0, screenY = 0;
   foreach( var child in model.Children )
   {
       //We obtain the location of the 3D points in the 3D plane
       var px = child.Bounds.Location.X;
       var py = child.Bounds.Location.Y;
       var pz = child.Bounds.Location.Z;
   }
   ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...