У меня есть приложение 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;
}
...
}