登录
首页 » C#源码 » C# 3DTools.dll WPF 3D建模、透视、动画效果演示实例

C# 3DTools.dll WPF 3D建模、透视、动画效果演示实例

于 2023-08-07 发布 文件大小:208.87 kB
0 5430
下载积分: 2 下载次数: 1

代码说明:

这是一个使用C# 3DTools.dll WPF技术实现的 3D建模、透视、动画效果演示实例,本源码包括了以下演示范围:使用ScreenSpaceLines3D绘制的3D坐标系、3D立方体、球、不同光源的折射、不同材质的视觉效果、2D房子、3D房子,用MatrixCamera模拟透视相机等功能,关于透视的若干参数设置和实现原理,请参考PerspectiveByMatrixCamera.xaml.cs,在此文件中包括了正射投影的若干参数, 计算M坐标系下的三个轴单位向量 Mx,My,Mz,计算平移矩阵的dx,dy,dz,计算正射投影矩阵的Sx,Sy,Sz,dz等。   创建相机和光源、坐标系请参考Sphere.xaml.cs文件,如果line3D非空,则需要绘制构建的三角网,计算出来的点,然后加入到MeshGeometry3D的Positions属性。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 利用“[^]”通配符进行查询
    C# 利用“[^]”通配符进行查询   string P_Str_ConnectionStr = string.Format(//创建数据库连接字符串    @"server=WIN-GI7E47AND9RLS;database=db_TomeTwo;uid=sa;pwd=");   string P_Str_SqlStr = string.Format(//创建SQL查询字符串    "SELECT 学生姓名,年龄,性别,家庭住址 FROM tb_Student");   SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(//创建数据适配器    P_Str_SqlStr, P_Str_ConnectionStr);   DataTable P_dt = new DataTable();//创建数据表   P_SqlDataAdapter.Fill(P_dt);//填充数据表   return P_dt;//返回数据表
    2022-03-20 15:58:24下载
    积分:1
  • C# 清除IE地址栏中的历史网址(修改注册表)
    C# 清除IE地址栏中的历史网址,也就是历史记录,这些记录都是平时自己输入的,IE会自动保存,本程序会把保存的这些网址信息全部删除了,主要是删除注册表中对应键值下的URL子键:   RegistryKey rkBase = Registry.CurrentUser;//定位到CurrentUser注册表项   //打开指定的注册表项   RegistryKey rkChild = rkBase.OpenSubKey(@"SoftwareMicrosoftInternet ExplorerTypedURLs",true);   String[] strValueNames = rkChild.GetValueNames();//获取所有的历史网址   foreach (string strItem in strValueNames)//遍历获取到的历史网址   {    rkChild.DeleteValue(strItem);//删除遍历到的历史网址   }
    2022-11-06 13:05:04下载
    积分:1
  • C# 验证图像生成类
    C# 验证码图像生成类,这个图像验证码生成类中可根据RGB,计算验证码图片的灰度值,去图形边框,灰度转换,逐行方式,得到有效图形并调整为可平均分割的大小,得到有效图形,图形为类变量,得到有效图形,图形由外面传入,返回灰度图片的点阵描述字串,1表示灰点,0表示背景,小平和垂直方向上的平均分割图片等。本验证码图片可用到WEB中,也可用到WinForm程序中。
    2022-03-09 22:25:52下载
    积分:1
  • C# 按照扩展名分组文件
    C# 按照扩展名分组文件,按照文件类型的不同,对文件进行归类显示,分类清淅便于查看,主要是使用MyFile中的对象和方法实现,核心的功能代码如下:   private void ShowGroupFile(IEnumerable> MyQueryGroup)   {    this.listBox1.Items.Clear();    foreach (var MyFileGroup in MyQueryGroup)    {    this.listBox1.Items.Add("包含" + MyFileGroup.Key + "扩展名的文件如下:");    foreach (var MyFileInfo in MyFileGroup)    {    this.listBox1.Items.Add(MyFileInfo.Name);    }    this.listBox1.Items.Add("");    }   }   static IEnumerable GetFiles(string MyDir)   {    if (!System.IO.Directory.Exists(MyDir))    throw new System.IO.DirectoryNotFoundException();    string[] MyFileNames = null;    List MyFiles = new List();    //查找指定目录下的所有子目录中的所有文件    //MyFileNames = System.IO.Directory.GetFiles(MyDir, "*.*", System.IO.SearchOption.AllDirectories);    MyFileNames = System.IO.Directory.GetFiles(MyDir);    foreach (string MyName in MyFileNames)    {    MyFiles.Add(new System.IO.FileInfo(MyName));    }    return MyFiles;   }
    2022-12-28 08:15:04下载
    积分:1
  • C#打造自己的智能屏幕取色工具
    C#打造自己的智能屏幕取色工具,自动鼠标坐标点的颜色值,取色窗口会自动躲闪鼠标的位置,取色模块从一个继承自Image类的对象中创建Graphics对象,颜色值可以转换为十进制和十六进制,部分初始化源码如下:   [DllImport("gdi32")]   private static extern IntPtr CreateDC(   string lpszDriver, // 驱动名称   string lpszDevice, // 设备名称   string lpszOutput, // 无用,可以设定位"NULL"   IntPtr lpInitData // 任意的打印机数据   );   [DllImport("gdi32.dll")]   private static extern bool BitBlt(   IntPtr hdcDest, // 目标设备的句柄   int nXDest, // 目标对象的左上角的X坐标   int nYDest, // 目标对象的左上角的X坐标   int nWidth, // 目标对象的矩形的宽度   int nHeight, // 目标对象的矩形的长度   IntPtr hdcSrc, // 源设备的句柄   int nXSrc, // 源对象的左上角的X坐标   int nYSrc, // 源对象的左上角的X坐标   int dwRop // 光栅的操作值
    2022-02-26 10:33:42下载
    积分:1
  • C# FTP客户端模块 上传下载文件显示进度
    C# FTP客户端模块 上传下载文件显示进度,本示例可通过HTTP、FTP下载文件,可通过FTP上传文件,请设定好服务器IP地址再测试,进度条在窗口的最上方。   percent = (float)totalDownloadedByte / (float)totalBytes * 100;   label1.Text = "当前补丁下载进度" + percent.ToString() + "%";   Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息   reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);//用户,密码   reqFTP.Method = WebRequestMethods.Ftp.UploadFile;//向服务器发出下载请求命令   reqFTP.ContentLength = finfo.Length;//为request指定上传文件的大小
    2022-03-23 13:46:25下载
    积分:1
  • C#读取文件内容显示在DataGridView表格中
    Visual C#在DataGridView单元格中显示文本文件的内容,可以理解为,从外部读取文件内容,将其显示在DataGridView   单元格中,可以看出,本代码中使用了DataTable对象、OleDb.OleDbDataAdapter对象,外部文件的格式暂定为txt,其它格式需要相关解析组件支持,实现本功能并不难,以下几行代码就可大致实现:   string MyPath = System.IO.Directory.GetCurrentDirectory();   string MyConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+MyPath+";Extended Properties="text;HDR=yes;FMT=delimited";";   string MySQL = "select * from 季度订单.txt";   DataTable MyTable = new DataTable();   System.Data.OleDb.OleDbDataAdapter MyAdapter = new System.Data.OleDb.OleDbDataAdapter(MySQL, MyConnectionString);   MyAdapter.Fill(MyTable);   this.dataGridView1.DataSource = MyTable;   运行界面效果请参见下图,完整源码请在本页下载。
    2022-03-20 07:42:37下载
    积分:1
  • C#播放wmv视频并填充到文字轮廓中
    C#播放wmv视频并填充到文字轮廓中,这个应该是一个艺术字效果吧,本程序实现了两个功能:一、视频文件播放功能(wmv),二、将视频影像填充到文字轮廓中显示,这个就有意思了,最终实现了比较动感的艺术字动画效果,在视频播放方面,主要使用MediaElement();实现,文字填充方面,基于TextBlock.Foreground实现,下面是具体一些的代码:   使用视频剪辑填充文字的线条   MediaElement MyMediaElement = new MediaElement();   MyMediaElement.Source = new Uri("Bear.wmv", UriKind.Relative);   MyMediaElement.IsMuted = true;   VisualBrush MyVisualBrush = new VisualBrush();   MyVisualBrush.Visual = MyMediaElement;   TextBlock MyTextBlock = new TextBlock();   MyTextBlock.FontFamily = new FontFamily("宋体");   MyTextBlock.FontSize = 180;   MyTextBlock.Text = "编程";   MyTextBlock.FontWeight = FontWeights.Bold;   MyTextBlock.Foreground = MyVisualBrush;   this.Content = MyTextBlock;   运行截图如下,不过本站截图是静态的,看不到本示例的动画效果,请下载源码在VS中编译运行,查看效果。
    2022-01-26 01:31:34下载
    积分:1
  • TMS320C6748各个接口外设所有标准程序 (亲测好使)
    TMS320C6748各个接口外设所有标准源码程序  (亲测好使)
    2022-07-16 14:39:18下载
    积分:1
  • C# 自定义DataGridView控件列单元格外观
    C# 自定义DataGridView控件列单元格外观的例子源码,这里只是一个演示,教会一种方法,因此仅定制DataGridView第一列单元格外观。最好是把数据库连接好,有数据读出这样能更好的看到自定义单元格的效果,详细的实现代码请下载源码包。
    2022-08-24 18:26:07下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载