广告
返回顶部
首页 > 资讯 > 精选 >基于WPF如何实现3D画廊动画效果
  • 509
分享到

基于WPF如何实现3D画廊动画效果

2023-07-05 07:07:46 509人浏览 泡泡鱼
摘要

本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接下来想做一个图廊,所以并没有必要用立方体,

本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

接下来想做一个图廊,所以并没有必要用立方体,只需做一些“墙壁”就行了。

而在一个平面上建起另一个矩形的平面,实则非常容易,只需输入墙角的两点和高度就可以了,这对于写过正方体的人来说绝对是简单得很,无非是把四个点劈成两个三角形

private MeshGeometry3D MakeSurface(Point3D p0, Point3D p1, Point3D p2, Point3D p3){    MeshGeometry3D mesh = new MeshGeometry3D();    Point3D[] pts ={p0, p1, p2, p3};    foreach (var pt in pts)        mesh.Positions.Add(pt);    foreach (var i in new int[6] { 0, 1, 2, 2, 3, 0 })        mesh.TriangleIndices.Add(i);    return mesh;}

接下来可以像之前做正方体时那样,先做一个平的地面,然后在地面上放置一些正方体。

由于地面上的正方形要求垂直于地面,所以重载一下

private MeshGeometry3D MakeSurface(Point p0, Point p1, double high){    return MakeSurface(        new Point3D(p0.X, 0, p0.Y),         new Point3D(p1.X, 0, p1.Y),         new Point3D(p1.X, high, p1.Y),         new Point3D(p0.X, high, p0.Y));}

然后生成模型

基于WPF如何实现3D画廊动画效果

代码为

private void DefineModel(Model3DGroup group){    // Make the ground.    const double wid = 10;    MeshGeometry3D groundMesh = MakeSurface(        new Point3D(-wid, 0, -wid),        new Point3D(-wid, 0, +wid),        new Point3D(+wid, 0, +wid),        new Point3D(+wid, 0, -wid));    DiffuseMaterial groundMaterial = new DiffuseMaterial(Brushes.DarkGray);    GeometryModel3D groundModel = new GeometryModel3D(groundMesh, groundMaterial);    group.Children.Add(groundModel);    MaterialGroup gpMaterial;    for (int x = -2; x <= 2; x += 2)    {        for (int y = -2; y <= 2; y += 2)        {            MeshGeometry3D mesh = MakeSurface(new Point(x, y), new Point(x, y + 1), 1);            byte r = (byte)(128 + x * 50);            byte g = (byte)(128 + y * 50);            byte b = (byte)(128 + x * 50);            Color color = Color.FromArgb(255, r, g, b);            DiffuseMaterial material = new DiffuseMaterial(                new SolidColorBrush(color));            GeometryModel3D model = new GeometryModel3D(mesh, material);            group.Children.Add(model);        }    }}

接下来就是挂载贴图,结果大致如下

基于WPF如何实现3D画廊动画效果

其方法也很简单,就是把material变成想要的图片,故而先把图像放在一个字符串数组

static readonly string[] imgs = new string[9]{    "2d1.png","2d2.png","2d3.png","2d4.png","2d5.png",    "2d6.png","2d7.png","2d8.png","2d9.png"};

接下来需要注意一点,图像本身需要一个坐标系,故而要把墙壁的代码改为

private MeshGeometry3D MakeSurface(Point p0, Point p1, double high, string uri = null){    var mesh = MakeSurface(        new Point3D(p0.X, 0, p0.Y), new Point3D(p1.X, 0, p1.Y),         new Point3D(p1.X, high, p1.Y), new Point3D(p0.X, high, p0.Y));    //这四个点代表图像上的坐标和图形中点的对应关系    Point[] textureCoods = new Point[4]    {        new Point(0, 1),new Point(1, 1),        new Point(1, 0),new Point(0, 0),    };    foreach (var pt  in textureCoods)        mesh.TextureCoordinates.Add(pt);    return mesh;}

然后在生成正方形时,用图像取代颜色

ImageBrush imgBrush = new ImageBrush();imgBrush.ImageSource = new Bitmapimage(new Uri(    $"imgs//{imgs[k++]}", UriKind.Relative));MeshGeometry3D mesh = MakeSurface(new Point(x, y), new Point(x, y + 1), 1);GeometryModel3D model = new GeometryModel3D(mesh, new DiffuseMaterial(imgBrush));group.Children.Add(model);

“基于WPF如何实现3D画廊动画效果”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 基于WPF如何实现3D画廊动画效果

本文链接: https://www.lsjlt.com/news/350331.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于WPF如何实现3D画廊动画效果
    本篇内容介绍了“基于WPF如何实现3D画廊动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!接下来想做一个图廊,所以并没有必要用立方体,...
    99+
    2023-07-05
  • 基于WPF实现3D画廊动画效果的示例代码
    接下来想做一个图廊,所以并没有必要用立方体,只需做一些“墙壁”就行了。 而在一个平面上建起另一个矩形的平面,实则非常容易,只需输入墙角的两点和高度就可以了,这...
    99+
    2023-02-28
    WPF实现3D画廊效果 WPF 3D画廊 WPF 3D
  • WPF怎么实现3D画廊动画效果
    要实现3D画廊动画效果,可以使用WPF的3D功能和动画功能。以下是一个简单的实现步骤:1. 创建一个WPF项目,并添加一个Viewp...
    99+
    2023-08-18
    WPF
  • WPF实现动画效果
    学习平台 微软开发者博客:https://devblogs.microsoft.com/WT.mc_id=DT-MVP-5003986微软文档与学习:https://docs.mic...
    99+
    2022-11-13
  • 基于WPF实现控件轮廓跑马灯动画效果
    代码如下 一、创建EdgeLight.xaml代码如下。 <ResourceDictionary xmlns="http://schemas.microsoft.com/win...
    99+
    2022-11-13
    WPF 控件轮廓跑马灯动画 WPF轮廓动画 WPF跑马灯动画
  • WPF实现动画效果(六)之路径动画
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • WPF实现动画效果(一)之基本概念
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • Android Flutter如何实现3D动画效果
    这篇文章主要讲解了“Android Flutter如何实现3D动画效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android Flutter如何实现3D动画效果”吧...
    99+
    2023-06-29
  • WPF实现动画效果(二)之From/To/By动画
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • WPF实现动画效果(五)之关键帧动画
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • CSS3如何实现3D开门动画效果
    这篇文章将为大家详细讲解有关CSS3如何实现3D开门动画效果,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 这篇文章将为大家详细讲解有关CSS3如何实现3D开门动画效果,...
    99+
    2022-10-19
  • WPF实现动画效果(四)之缓动函数
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • WPF实现倒计时转场动画效果
    代码如下 一、创建 CountdownTimer.xaml 继承ContentControl代码如下。 using System; using System.Linq; u...
    99+
    2022-11-13
    WPF倒计时动画 WPF 倒计时 WPF 转场 动画
  • 如何基于Flutter实现爱心三连动画效果
    这篇文章主要为大家展示了“如何基于Flutter实现爱心三连动画效果”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何基于Flutter实现爱心三连动画效果”这篇文章吧。前言我们开始 Flutt...
    99+
    2023-06-29
  • 基于Flutter实现爱心三连动画效果
    目录前言Animation 简介AnimationController 简介应用 - 爱心三连总结前言 我们开始 Flutter 动画相关篇章之旅,在应用中通过动效能够给用户带来更愉...
    99+
    2022-11-13
  • 基于Vue3实现旋转木马动画效果
    做的比较丑 最后图片 本来打算用vue-carousel-3d这个组件的,但是这个组件一直报源码错误,修改了半天也没有解决 效果图 实现代码 使用了swiper组件 html部分...
    99+
    2022-11-13
  • AndroidFlutter实现3D动画效果示例详解
    目录前言AnimatedWidget 简介3D 旋转动画的实现总结前言 上一篇我们介绍了 Animation 和 AnimationController...
    99+
    2022-11-13
  • Android 3D旋转动画效果实现分解
    这篇文章主要介绍一下如何实现View的3D旋转效果,实现的主要原理就是围绕Y轴旋转,同时在Z轴方面上有一个深入的缩放。演示的demo主要有以下几个重点: 1,自定义旋转动画 2...
    99+
    2022-06-06
    3d 3d旋转 动画 Android
  • WPF实现动画效果(三)之时间线(TimeLine)
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
  • WPF实现动画效果(七)之演示图板
    WPF动画效果系列 WPF实现动画效果(一)之基本概念 WPF实现动画效果(二)之From/To/By 动画 WPF实现动画效果(三)之时间线(TimeLine) WPF实现动画效果...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作