0

モデル(立方体)を作成してビューポートに追加すると、問題なく正常に動作します。

this.mainViewport.Children.Add(model);

次のコードを使用すると、立方体は元の色ではなく黒になります。

this.mainViewport.Children.Clear(); this.mainViewport.Children.Add(model);

次の秒で別の位置に立方体を追加するので、ビューポートをクリアする必要があります。その問題を解決するための提案をいただければ幸いです。

4

3 に答える 3

0

代わりに次のようにします:開始位置に初めてキューブを作成します:

ModelVisual3D model = new ModelVisual3D();
model.Content = cube;

次に、タイマーで、新しい場所で変換を変更します。

model.Transform = new TranslateTransform3D(X, Y, Z); // model need to be a field in your class

他の利用可能なtransormsは次のとおりです。

  1. ScaleTransform3D

  2. RotateTransform3D

  3. MatrixTransform3D

  4. Transform3DGroup

于 2012-07-09T18:09:45.973 に答える
0

私はそれが古い質問であることを知っています、しかし正しい答えは誰かを助けるかもしれません。
this.mainViewportChildren.Clear()
光源(のいずれか)も削除するため、立方体は黒になります。立方体を元の色にするには、次のようにコードに追加する必要があります。
this.mainViewport.Children.Add(new ModelVisual3D() { Content = new AmbientLight(Colors.White) });

于 2015-04-20T11:13:37.767 に答える
0
//if you use ScreenSpaceLines3D
for (int i = _mainViewport.Children.Count - 1; i >= 0; i--)
{
    ModelVisual3D modelVisual3D = ModelVisual3D)_mainViewport.Children[i];
    if (modelVisual3D is ScreenSpaceLines3D)
    {
        ScreenSpaceLines3D line3D = ScreenSpaceLines3D)_mainViewport.Children[i];
        line3D.Points.Clear();                             
        continue;

    }
    if (modelVisual3D.Content is DirectionalLight == false)   
    {                
       mainViewport.Children.Remove(modelVisual3D); 
    }                   
}


   
于 2020-10-15T11:56:13.120 に答える