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

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

于 2023-08-07 发布 文件大小:208.87 kB
0 5422
下载积分: 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语言编写,学习用。
    2022-12-05 05:10:03下载
    积分:1
  • C# 进度条、状态栏和计时器的实例
    C# 进度条、状态栏和计时器的实例,这个例子的部分功能需要连接数据库才可看到,窗体上可看到进度条、时间等控件的效果,相关代码可看下边的代码,可起一定参考:   myAdapter.Fill(myDs, "dtMyProd");   myConn.Close();   //为数据表生成主键   DataColumn[] myPK = new DataColumn[1];   myPK[0] = myDs.Tables["dtMyProd"].Columns["ProductId"];   myDs.Tables["dtMyProd"].PrimaryKey = myPK;   DataRow thisRow = myDs.Tables["dtMyProd"].Rows[1];   txtPId.Text = "" + thisRow["ProductId"];   txtPName.Text = (String)thisRow["ProductName"];   txtUnitPrice.Text = "$" + thisRow["UnitPrice"];   statusBar1.Text ="数据库加载完毕";   时间处理方面,请参见以下代码:   string TimeInString="";   int hour=DateTime.Now.Hour;   int min=DateTime.Now.Minute;   int sec=DateTime.Now.Second;   TimeInString=(hour < 10)?"0" + hour.ToString() :hour.ToString();   TimeInString+=":" + ((min
    2022-04-17 01:40:32下载
    积分:1
  • C# 向StatusBar状态栏控件中添加窗格面板
    C# 向StatusBar状态栏控件中添加窗格面板及文字,也就是把窗口的状态栏分栏,分隔成若干个小区域,显示不同的信息,比如文字提示或图标等。   向StatusBar控件添加窗格面板   StatusBar statusBar1=new StatusBar();   statusBar1.Panels.Add("中华人民共和国");   statusBar1.Panels.Add("重庆市");   statusBar1.Panels.Add("罗斌");   statusBar1.Panels[0].AutoSize = StatusBarPanelAutoSize.Contents;   statusBar1.Panels[1].AutoSize = StatusBarPanelAutoSize.Spring;   statusBar1.Panels[2].AutoSize = StatusBarPanelAutoSize.Contents;   statusBar1.Panels[0].BorderStyle =StatusBarPanelBorderStyle.Raised;   statusBar1.Panels[1].BorderStyle = StatusBarPanelBorderStyle.Sunken;   statusBar1.Panels[2].BorderStyle = StatusBarPanelBorderStyle.Raised;   statusBar1.Panels[2].Icon = new System.Drawing.Icon( @"Error.ico");   statusBar1.ShowPanels = true;   this.Controls.Add(statusBar1);
    2022-05-17 04:53:06下载
    积分:1
  • C# AVG、SUM、COUNT、SqlHelper等函数用法示例
    本源码主要是一些C#数据库操作函数的示例,比如使用函数AVG计算数值字段平均值、使用函数SUM计算数值字段累加和   使用函数COUNT统计数据库记录数、使用SqlHelper查询数据库记录、使用SqlHelper获取聚合函数值、使用SqlHelper增加数据库记录等,每一个例子都有详细的源代码。   实现这些功能需要调用Microsoft.ApplicationBlocks.Data.dll,DataAccessApplicationBlock.msi已打包在源码包中。   程序运行效果如下图示,单击对应按钮即可查看对应的功能演示,测试前请先连接好数据库。
    2022-10-25 05:55:02下载
    积分:1
  • C# 使用Binding对象读取图像字段
    C# 数据库操作实例,使用Binding对象从数据库中读取图像字段,同时还演示了从SQL Server数据库读取图像,向SQL Server数据库添加图像。   向SQL Server数据库添加图像主要是在SQL Server Northwind数据库中创建图像数据表,添加图像数据参数值,从SQL Server数据库读取图像的代码如下:   private void button2_Click(object sender, EventArgs e)   {//从SQL Server数据库读取图像    var MySQL = "Select * From MyImageTable ";    var MyConnection = new System.Data.SqlClient.SqlConnection("Data Source=.SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");    var MySet = new DataSet();    var MyAdapter = new System.Data.SqlClient.SqlDataAdapter(MySQL, MyConnection);    MyAdapter.Fill(MySet);    byte[] MyBytes = (byte[])MySet.Tables[0].Rows[0]["ImageData"];    var MyStream = new System.IO.MemoryStream(MyBytes);    this.pictureBox1.Image = Image.FromStream(MyStream);   }
    2022-01-25 16:04:56下载
    积分:1
  • C# 创建一个泛型接口
    C# 创建一个泛型接口的例子,创建一个泛型接口的代码和方法如下:   public interface IGenericInterface   {    T CreateInstance(); //接口中调用CreateInstance方法   }   //实现上面泛型接口的泛型类   //派生约束where T : TI(T要继承自TI)   //构造函数约束where T : new()(T可以实例化)   public class Factory : IGenericInterface where T : TI, new()   {    public TI CreateInstance()//创建一个公共方法CreateInstance    {    return new T();    }   }   class Program   {    static void Main(string[] args)    {    //实例化接口    IGenericInterface factory =   Factory();    //输出指定泛型的类型    Console.WriteLine(factory.CreateInstance().GetType().ToString());    Console.ReadLine();    }   }
    2022-03-11 00:59:39下载
    积分:1
  • C#邮件收发程序 发Email和接收邮件
    C#实现的一个邮件收发程序,功能主要是两大块,发送邮件和接收邮件,类似于一个邮件客户端的功能,在这个邮件发送程序中,写了几个函数分别实现相关的模块功能:   对获得连接的用户身份进行验证   获取登录邮箱的各种信息   判断返回的字符串信息,如果是“+OK”,证明登录成功,否则登录失败   根据输入的邮件编号读取邮件信息   获取由参数标识的邮件的全部文本   对读取的邮件内容进行Base64编码   “登录”按钮事件,实例化SmtpClient邮件发送类对象   初始化StreamReader对象,以便以流的形式读取远程主机中的内容   获取远程主机中指定用户的邮件信息   获得远程主机上指定邮件的相关信息,存储到一个string类型的数组中,数组中的内容包括:邮件日期、发信人、收信人、邮件主题、邮件内容等。
    2022-04-23 02:56:49下载
    积分: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# 使用代查找资词典中的资
    C# 使用代码查找资源词典中的资源,单击按钮,窗体中会出现一张图片,没搞懂本示例是想要演示什么功能,有兴趣的自己下载源码查看。这里帖一下几行关键代码:   private void button1_Click(object sender, RoutedEventArgs e)   {//使用代码查找资源词典中的资源    Image MyImage = (Image)this.FindResource("MyImage");    this.image1.Source = MyImage.Source;   }
    2022-09-07 18:30:03下载
    积分:1
  • C# 修复Access数据库的一个范例程序
    C# 修复Access数据库的一个范例程序,不过不知道到底能不能修复吧,这个修复过程的编写,可参考以下代码:   //声明临时数据库的名称   string temp = DateTime.Now.Year.ToString();   temp += DateTime.Now.Month.ToString();   temp += DateTime.Now.Day.ToString();   temp += DateTime.Now.Hour.ToString();   temp += DateTime.Now.Minute.ToString();   temp += DateTime.Now.Second.ToString() + ".bak";   temp = strPathMdb.Substring(0, strPathMdb.LastIndexOf("") + 1) + temp;   //定义临时数据库的连接字符串   string temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;   //定义目标数据库的连接字符串   string strPathMdb2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPathMdb;   JRO.JetEngineClass jt = new JRO.JetEngineClass();//创建一个JetEngineClass对象   //使用JetEngineClass对象的CompactDatabase方法压缩修复数据库   jt.CompactDatabase(strPathMdb2, temp2);      File.Copy(temp, strPathMdb, true);//拷贝临时数据库到目标数据库(覆盖)   File.Delete(temp);//删除临时数据库   MessageBox.Show("修复完成");   这个程序中使用了三个类库:Interop.ADODB.dll、Interop.ADOX.dll、Interop.JRO.dll。
    2022-01-26 03:31:51下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载