2012-07-09 6 views
0

모델 (큐브)을 만들고이를 내 뷰포트에 추가하면 문제없이 올바르게 작동합니다.wpf의 뷰포트를 지움

this.mainViewport.Children.Add (model);

다음 코드를 사용할 때마다 큐브가 원래 색상 대신 검정색이됩니다.

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

다음 초에 큐브를 다른 위치에 추가 할 때 뷰포트를 지워야합니다. 그 문제를 해결하기위한 제안은 매우 높이 평가 될 것입니다.

+0

색상이 mainViewPort에 포함되어 있습니다 :
this.mainViewportChildren.Clear()
큐브는 같은 코드 뭔가에 추가해야합니다 원래 색상을 얻을 수 있도록, 또한 광원 (의)를 제거하기 때문에 큐브 검은 얻는다? 나는 네가 아이들을 깨끗하게해야한다고 생각하지 않는다. 뷰포트에는 빛, 변형 등의 객체와는 별도로 다른 것들이 있습니다. 왜 당신은 Clear()해야합니까? – MBen

+0

답장을 보내 주셔서 감사합니다. 사실 큐브의 위치를 ​​바꿀 필요가 있습니다 (데이터 파일에서 다른 3D 포인트가 있고 그 포인트를 기반으로 큐브의 위치가 변경됨, 타이머를 생성하고 타이머를 기반으로 다음 데이터를 읽고 객체를 시각화 함). 그에 따라), 나는 그것을하는 가장 쉬운 방법 이었지만. 모든 제안 – MKS

+0

내 코드는 다음과 같습니다 ModelVisual3D model = new ModelVisual3D(); model.Content = cube; this.mainViewport.Children.Clear(); this.mainViewport.Children.Add (model); – MKS

답변

0

내가 대신 이런 짓을 할 것이다 :

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

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

그런 다음 타이머에서 나는 변환 재치 새 위치를 바꿀 것 : 제품은 위치 시작에 이 큐브를 처음 만들기

다른 사용 가능한 트랜 섬은 다음과 같습니다.

  1. MatrixTransform3D

  2. RotateTransform3D

    Transform3DGroup

0

나는 그것이 오래된 질문이지만, 정답은 사람을 도움이 될 것을 알고

  • 을 ScaleTransform3D.
    this.mainViewport.Children.Add(new ModelVisual3D() { Content = new AmbientLight(Colors.White) });

  • 관련 문제