mak_ufo
@mak_ufo

Как развернуть 3D-модель вокруг нескольких осей?

Здравствуйте. Пишу десктопное приложение на c# с помощью wpf. Для работы с 3D-графикой использую стандартные возможности wpf. Есть модель, которую успешно развернул вокруг оси ox на 180 градусов:
<ModelVisual3D>
  <ModelVisual3D.Content>
      <Model3DGroup x:Name="Group">
          <AmbientLight Color="DarkCyan" />
          <DirectionalLight Color="White" Direction="-5,-8,-7" />
      </Model3DGroup>
  </ModelVisual3D.Content>

  <ModelVisual3D.Transform>
       <RotateTransform3D>
             <RotateTransform3D.Rotation>
                 <AxisAngleRotation3D x:Name="rotate" Angle="180" Axis= "1 0 0" />
             </RotateTransform3D.Rotation>
       </RotateTransform3D>
  </ModelVisual3D.Transform>
</ModelVisual3D>

Вот хочу повернуть эту же модель вокруг оси oy(010), но не знаю, как это сделать.
Если я пытаюсь скопировать элемент <ModelVisual3D.Transform>, то VS начинает ругаться: "свойство transform задано более одного раза"
  • Вопрос задан
  • 235 просмотров
Решения вопроса 1
@S0HardCore
<ModelVisual3D.Transform>
                        <Transform3DGroup>
                            <RotateTransform3D CenterX=".5" CenterY=".5" CenterZ=".5">
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="rotateX" Axis="1 0 0" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                            <RotateTransform3D CenterX=".5" CenterY=".5" CenterZ=".5">
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="rotateY" Axis="0 1 0" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                            <RotateTransform3D CenterX=".5" CenterY=".5" CenterZ=".5">
                                <RotateTransform3D.Rotation>
                                    <AxisAngleRotation3D x:Name="rotateZ" Axis="0 0 1" />
                                </RotateTransform3D.Rotation>
                            </RotateTransform3D>
                        </Transform3DGroup>
                    </ModelVisual3D.Transform>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы