我正在使用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 STL的。
只是一個想法..第一行是你得到一個點使用鼠標點擊;使用螺旋Point2DToPoint3D的輔助方法,你可以得到一個Point3D來獲取三維空間中的點擊點並使用它來繪製點。或者換句話說,視口具有'CursorOnelementPosition'屬性,該屬性給出stl模型上的點擊點。 – Nit