我是新的3D圖形,也是WPF,需要結合這兩個在我目前的項目。我給MeshGeometry3D
添加積分和法線,並將MeshGeometry3D
加到GeometryModel3D
。然後加GeometryModel3D
至ModelVisual3D
,最後加ModelVisual3D
至ViewPort3D
。現在,如果我需要旋轉,我在GeometryModel3D或ModelVisual3D上執行所需的變換,並最終再次將其添加到ViewPort3D。我運行到一個問題:在Windows上的3D圖形在WPF的C#
objViewPort3D.Remove(objModelVisual3D);
objGeometryModel3D.Transform = new RotateTransform3D(new AxisAngleRotation3D(new Vector3D(0, 1, 0), angle += 15));
objModelVisual3D.Content = objGeometryModel3D;
objViewPort3D.Children.Add(objModelVisual3D);
爲什麼我必須做angle += 15
並不僅僅是15
每次15度旋轉呢?看起來存儲的模型未被Transform
操作轉換,但轉換僅在通過ViewPort3D
顯示時應用。我想要轉換實際上改變存儲的MeshGeometry3D對象中的座標,以便當我在下一次執行轉換時對先前轉換的模型執行轉換,而不是原始模型。我如何獲得這種行爲?
感謝。但是我的要求是,一旦呈現,用戶可以選擇網格模型中的一個或多個頂點並拖動鼠標。在這種情況下,我需要相應地變形渲染模型並再次渲染。你會建議什麼? – user1790875
那麼你可以做相反的事情。採取用戶點擊的點,並進行逆變換以映射回對象空間。 –