Я использую HelixToolkit для просмотра и взаимодействия с файлами STL. Мне нужно нарисовать или отметить точку, нажатую пользователем в окне. У меня есть координаты, я знаю, где рисовать этот момент, но я не знаю, как его нарисовать, может кто-нибудь мне помочь? Я отправляю код, чтобы объяснить, что я прямо сейчас:Точка рисования, на которую нажимали мышь
private void vierport3d_MouseRightClick(object sender, MouseButtonEventArgs e)
{
Point mousePos = e.GetPosition(viewPort3d);
PointHitTestParameters hitParams = new PointHitTestParameters(mousePos);
VisualTreeHelper.HitTest(viewPort3d, null, ResultCallback, hitParams);
}
public HitTestResultBehavior ResultCallback(HitTestResult result)
{
RayHitTestResult rayResult = result as RayHitTestResult;
if (rayResult != null)
{
RayMeshGeometry3DHitTestResult rayMeshResult = rayResult as RayMeshGeometry3DHitTestResult;
//HERE I HAVE THE LOCATION TO DRAW
MessageBox.Show(rayMeshResult.PointHit.X + " " + rayMeshResult.PointHit.Y + " " + rayMeshResult.PointHit.Z);
if (rayMeshResult != null)
{
// I THINK I HAVE TO DRAW THE POINT HERE
}
}
return HitTestResultBehavior.Continue;
}
PD: Я показать СТЛ на Viewport3D.
Просто мысль .. в первой строке вы получили точку с помощью мыши; используя это и один из вспомогательных методов из helix Point2DToPoint3D, вы можете получить Point3D, чтобы получить точку щелчка в 3d-пространстве и использовать ее для рисования точки. Или, наоборот, у viewport есть свойство CursorOnelementPosition, которое дает точку щелчка на stl-модели. – Nit