C#開發(fā)Windows UWP系列之3D變換
在Win8.1中,引入了一個PlaneProjection可以實現(xiàn)3D變換,但它的變換方式比較簡單,只能實現(xiàn)基本的旋轉(zhuǎn)操作。在Windows 10 UWP中,引入了一個更加強(qiáng)大的3D變換Transform3D,系統(tǒng)默認(rèn)內(nèi)置了兩中變換方式:PerspectiveTransform3D
和CompositeTransform3D
。一個簡單的示例如下:
<StackPanel HorizontalAlignment="Center"> <Image Source="Assets\img.jpg" Width="400" Name="image"> <Image.Transform3D> <CompositeTransform3D CenterX="200" CenterY="100" RotationX="{x:Bind sliderX.Value,Mode=OneWay}" RotationY="{x:Bind sliderY.Value,Mode=OneWay}" RotationZ="{x:Bind sliderZ.Value,Mode=OneWay}"> </CompositeTransform3D> </Image.Transform3D> </Image> <Slider x:Name="sliderX" Maximum="360" Width="400" Margin="0,10,0,10"></Slider> <Slider x:Name="sliderY" Maximum="360" Width="400" Margin="0,10,0,10"></Slider> <Slider x:Name="sliderZ" Maximum="360" Width="400" Margin="0,10,0,10"></Slider> </StackPanel>
運(yùn)行效果如下:
上面的例子比較簡單,一旦和動畫結(jié)合起來后,是可以實現(xiàn)非常酷的3D動畫效果的,Win10的磁貼翻轉(zhuǎn)效果貌似就是用它做的。最后提一下的是,貌似CompositeTransform3D的旋轉(zhuǎn)中心點(diǎn)只能傳入絕對位置,而無法傳入類似(0.5, 0.5)之類的相對位置,用起來時需要先計算大小,略有不便。
到此這篇關(guān)于UWP程序?qū)崿F(xiàn)3D變換的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用C# CefSharp Python采集某網(wǎng)站簡歷并且自動發(fā)送邀請短信的方法
這篇文章主要給大家介紹了關(guān)于如何使用C# CefSharp Python采集某網(wǎng)站簡歷并且自動發(fā)送邀請短信的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2019-03-03c# winform 解決PictureBox 無法打印全部圖片的問題
這篇文章主要介紹了c# winform 解決PictureBox 無法打印全部圖片的問題,幫助大家更好進(jìn)行c# winform開發(fā),感興趣的朋友可以了解下2020-12-12C#使用Pipelines實現(xiàn)處理Socket數(shù)據(jù)包
這篇文章主要為大家詳細(xì)介紹了C#如何使用Pipelines實現(xiàn)處理Socket數(shù)據(jù)包,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-12-12C#使用隨機(jī)數(shù)編寫班級點(diǎn)名器的示例代碼
本文主要介紹了C#使用隨機(jī)數(shù)編寫班級點(diǎn)名器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05C# 中 Array和 ArrayList詳解及區(qū)別
這篇文章主要介紹了C# 中 Array和 ArrayList詳解及區(qū)別的相關(guān)資料,需要的朋友可以參考下2017-01-01