• 大小: 38KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C#
  • 标签: C#  directX  d  

资源简介

C# directX 3d对象拾取

资源截图

代码片段和文件信息

////////////////////////////////////////////////////////////////////////
//      ■■■■     ■■■■■       ■■■■       ■       ■      //
//    ■                 ■         ■               ■       ■      //
//    ■                 ■         ■    ■■■     ■       ■      //
//    ■                 ■         ■       ■      ■       ■      //
//      ■■■■         ■           ■■■■         ■■■■       //
// Copyright (c) 三峡大学水利与环境学院 肖泽云. All rights reserved.  //
////////////////////////////////////////////////////////////////////////

using System;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using Microsoft.DirectX;
using Microsoft.DirectX.Direct3D;

namespace 拾取对象
{
    public partial class Pickobject : Form
    {
        Device device = null;//定义绘图设备

        private float angleY=0.01f;//定义绕Y轴旋转变量
        private Vector3 CamPostion = new Vector3(0 30 -30);//定义摄像机位置
        private Vector3 CamTarget = new Vector3(0 0 0);//定义摄像机目标位置

        private int mouseLastXmouseLastY;//记录鼠标按下时的坐标位置
        private bool isRotateByMouse=false;//记录是否由鼠标控制旋转
        private bool isMoveByMouse = false;//记录是否由鼠标控制移动

        //private Mesh meshObj;//定义茶壶网格对象
        //private Material meshMaterials; //定义网格材质对象

        private Mesh[] meshObj;//定义茶壶网格对象
        private Material[] meshMaterials; //定义网格材质对象
        private Matrix[] meshPosition;//定义茶壶网格的位置

        public Pickobject()
        {
            this.ClientSize = new Size(800 600);//指定窗体尺寸
            this.Text = “拾取对象“;//指定窗体标题
        }

        public bool InitializeDirect3D()
        {
            try
            {
                PresentParameters presentParams = new PresentParameters();
                presentParams.Windowed = true; //指定以Windows窗体形式显示
                presentParams.SwapEffect = SwapEffect.Discard; //当前屏幕绘制后它将自动从内存中删除
                presentParams.AutoDepthStencilFormat = DepthFormat.D16;
                presentParams.EnableAutoDepthStencil = true;
                presentParams.PresentationInterval = PresentInterval.Immediate;
                device = new Device(0 DeviceType.Hardware this CreateFlags.SoftwareVertexProcessing presentParams); //实例化device对象
                
                /*
                meshObj = Mesh.Teapot(device);//定义茶壶对象
                //定义材质
                meshMaterials.Diffuse = Color.White;
                meshMaterials.Ambient = Color.White;
                meshMaterials.Specular = Color.LightGray;
                meshMaterials.SpecularSharpness = 15.0F;
                */
                //定义三个茶壶对象
                meshObj = new Mesh[3];
                meshObj[0] = Mesh.Teapot(device);//定义茶壶对象
                meshObj[1] = Mesh.Teapot(device);//定义茶壶对象
                meshObj[2] = Mesh.Teapot(device);//定义茶壶对象
                //定义茶壶位置
                meshPosition = new Matrix[3];
                meshPosition[0] = Matrix.Translation(-10f 0f

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     目录          0  2012-05-21 22:12  15.3拾取对象\拾取对象\bin\Debug

     目录          0  2012-05-21 22:12  15.3拾取对象\拾取对象\bin

     目录          0  2010-03-21 11:28  15.3拾取对象\拾取对象\obj\Debug\Refactor

     文件      16512  2009-12-17 07:56  15.3拾取对象\拾取对象\obj\Debug\ResolveAssemblyReference.cache

     目录          0  2010-03-21 11:28  15.3拾取对象\拾取对象\obj\Debug\TempPE

     文件      24576  2010-01-25 09:30  15.3拾取对象\拾取对象\obj\Debug\包围盒.exe

     文件      22016  2010-01-25 09:30  15.3拾取对象\拾取对象\obj\Debug\包围盒.pdb

     文件      24576  2010-01-27 11:17  15.3拾取对象\拾取对象\obj\Debug\拾取对象.exe

     文件      22016  2010-01-27 11:17  15.3拾取对象\拾取对象\obj\Debug\拾取对象.pdb

     文件      24576  2010-01-25 21:26  15.3拾取对象\拾取对象\obj\Debug\点击射线.exe

     文件      19968  2010-01-25 21:26  15.3拾取对象\拾取对象\obj\Debug\点击射线.pdb

     目录          0  2012-05-21 22:12  15.3拾取对象\拾取对象\obj\Debug

     文件        142  2010-01-25 13:48  15.3拾取对象\拾取对象\obj\包围盒.csproj.FileList.txt

     文件        154  2010-01-27 11:17  15.3拾取对象\拾取对象\obj\拾取对象.csproj.FileList.txt

     文件        166  2010-01-24 20:29  15.3拾取对象\拾取对象\obj\摄像机变换.csproj.FileList.txt

     文件        154  2010-01-25 21:36  15.3拾取对象\拾取对象\obj\点击射线.csproj.FileList.txt

     目录          0  2012-05-21 22:12  15.3拾取对象\拾取对象\obj

     文件      16561  2010-01-27 11:08  15.3拾取对象\拾取对象\Pickobject.cs

     文件       1173  2010-01-25 21:38  15.3拾取对象\拾取对象\Pickobject.Designer.cs

     文件       2618  2010-01-25 21:37  15.3拾取对象\拾取对象\拾取对象.csproj

     目录          0  2012-05-21 22:12  15.3拾取对象\拾取对象

     文件        925  2010-01-27 11:17  15.3拾取对象\拾取对象.sln

    ..A..H.     16384  2010-01-27 11:17  15.3拾取对象\拾取对象.suo

     目录          0  2012-05-21 22:12  15.3拾取对象

----------- ---------  ---------- -----  ----

               192517                    24


评论

共有 条评论