wpf 3D立方体旋转

 public MainWindow()
        {
            InitializeComponent();
            DispatcherTimer timer = new DispatcherTimer();
            timer.Interval = TimeSpan.FromSeconds(0.001);
            timer.Tick += new EventHandler(timer_Tick);
            timer.Start();
        }
        private int i = 0;
        void timer_Tick(object sender, EventArgs e)
        {
            if (myAngleRotation.Angle + 5 == 360)
            {
                i++;
                if (i % 2 == 1)
                    myAngleRotation.Axis = new Vector3D(3, 3, 0);
                else
                    myAngleRotation.Axis = new Vector3D(0, 3, 3);
            }
            myAngleRotation.Angle = (myAngleRotation.Angle + 5) % 360;
        }
  <Grid>
        <Viewport3D>
            <Viewport3D.Camera>
                <PerspectiveCamera FarPlaneDistance="20" FieldOfView="50" NearPlaneDistance="0"
                    Position="-5,2,3" LookDirection="5,-2,-3" UpDirection="0,1,0"/>
            </Viewport3D.Camera>

            <ModelVisual3D>
                <ModelVisual3D.Content>
                    <Model3DGroup>
                        <!--side 5 top-->
                        <GeometryModel3D >
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D  Positions="
                                                0.5,0.5,-0.5 
                                                -0.5,0.5,-0.5 
                                                -0.5,0.5,0.5 
                                                -0.5,0.5,0.5 
                                                0.5,0.5,0.5 
                                                0.5,0.5,-0.5 
                                                "/>
                                
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="Blue" />
                            </GeometryModel3D.Material>
                            
                        </GeometryModel3D>
                        
                        <AmbientLight Color="White"></AmbientLight>
                       
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D Positions="
                                                -0.5,0.5,-0.5 
                                                -0.5,-0.5,-0.5 
                                                -0.5,-0.5,0.5 
                                                -0.5,-0.5,0.5 
                                                -0.5,0.5,0.5 
                                                -0.5,0.5,-0.5 
                                                "/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial>
                                    <DiffuseMaterial.Brush>
                                        <SolidColorBrush Color="Red" Opacity="1"/>
                                    </DiffuseMaterial.Brush>
                                </DiffuseMaterial>
                            </GeometryModel3D.Material>
                        </GeometryModel3D>
                       

                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D Positions="
                                                -0.5,-0.5,0.5 0.5,-0.5,0.5 0.5,0.5,0.5 
                                                0.5,0.5,0.5 -0.5,0.5,0.5 -0.5,-0.5,0.5 
                                                "/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="Yellow" />
                            </GeometryModel3D.Material>
                        </GeometryModel3D>
                   
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D Positions="
                                                -0.5,-0.5,-0.5 -0.5,0.5,-0.5 0.5,0.5,-0.5 
                                                0.5,0.5,-0.5 0.5,-0.5,-0.5 -0.5,-0.5,-0.5 
                                                "/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="Green" />
                            </GeometryModel3D.Material>
                        </GeometryModel3D>
          
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D Positions="
                                                -0.5,-0.5,-0.5 
                                                0.5,-0.5,-0.5 
                                                0.5,-0.5,0.5 
                                                0.5,-0.5,0.5 
                                                -0.5,-0.5,0.5 
                                                -0.5,-0.5,-0.5 
                                                "/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="LightSlateGray" />
                            </GeometryModel3D.Material>
                        </GeometryModel3D> 
                 
                        <GeometryModel3D>
                            <GeometryModel3D.Geometry>
                                <MeshGeometry3D Positions="
                                                0.5,-0.5,-0.5 
                                                0.5,0.5,-0.5 
                                                0.5,0.5,0.5 
                                                0.5,0.5,0.5 
                                                0.5,-0.5,0.5 
                                                0.5,-0.5,-0.5 
                                                "/>
                            </GeometryModel3D.Geometry>
                            <GeometryModel3D.Material>
                                <DiffuseMaterial Brush="DarkOrange" />
                            </GeometryModel3D.Material>
                        </GeometryModel3D>
                    </Model3DGroup>
                </ModelVisual3D.Content>
                <ModelVisual3D.Transform>
                    <RotateTransform3D>
                        <RotateTransform3D.Rotation>
                            <AxisAngleRotation3D x:Name="myAngleRotation" Axis="0,3,3" />
                        </RotateTransform3D.Rotation>
                    </RotateTransform3D>
                </ModelVisual3D.Transform>
            </ModelVisual3D>
        </Viewport3D>

    </Grid>


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值