WPF動畫旋轉(3軸同時旋轉問題)

WPF的資料比較少,做起來不是很方便,之前一直有個XYZ3個軸同時旋轉的問題,開始的時候以爲通過

 this.theRotateX.Axis = new Vector3D(1, 0, 0);

this.theRotateY.Axis = new Vector3D(0, 1, 0);

this.theRotateZ.Axis = new Vector3D(0, 0, 1);

能夠達到預期效果,但是程序中改變XAML只保留最後一次的值,也就是RotateZ的值,和預期相差甚遠,下邊是解決方法,通過聲明3個Rotate來達到同時改變XYZ旋轉動畫:

                                           
                                        <RotateTransform3D>                                          
                                            
                                       <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D x:Name="theRotateX" Angle="180" Axis="1 0 0" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D x:Name="theRotateY" Angle="180" Axis="0 1 0" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>
                                        <RotateTransform3D>
                                            <RotateTransform3D.Rotation>
                                                <AxisAngleRotation3D x:Name="theRotateZ" Angle="180" Axis="0 0 1" />
                                            </RotateTransform3D.Rotation>
                                        </RotateTransform3D>

也是通過這發現在程序中改變XAML只在一次程序循環同時改變一次,這樣正常的編程方式會出現很多問題,不知道有沒有其他的方式能夠實現程序中順序改變,而不是最後一次提交那種效果
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章