安装DirectX SDK;
新建一个C# winform项目;添加DirectX引用;相关dll在directX安装目录;
认识一下DirectX的向量数据类型;只是使用Vector2、Vector3、Vector4数据类型,只添加 Microsoft.DirectX 一个命名空间即可;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
//using System.Linq;
using System.Text;
//using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.DirectX;
namespace xt
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Vector3 a1 = new Vector3(20, 10, 1);
Vector3 a2 = new Vector3(20.05f, 10.05f, 1.05f);
Vector3 a3 = a1 + a2;
Vector3 a4 = a2 * 10;
Vector2 b1 = new Vector2(5, 5);
Vector2 b2 = new Vector2(5.5f, 6.5f);
Vector4 c1 = new Vector4(1.0f, 2.0f, 2.0f, 3.0f);
textBox1.Text = textBox1.Text + a2.X.ToString() + "," + a2.Y.ToString() + "," + a2.Z.ToString() + Environment.NewLine;
textBox1.Text = textBox1.Text + a4.X.ToString() + "," + a4.Y.ToString() + "," + a4.Z.ToString() + Environment.NewLine;
textBox1.Text = textBox1.Text + c1.X.ToString() + "," + c1.Y.ToString() + "," + c1.Z.ToString() + "," + c1.W.ToString() + Environment.NewLine;
}
}
}
一共有3种向量数据类型,Vector2、Vector3、Vector4;分别有2、3、4个成员;
成员是float类型;
Vector3 a1 = new Vector3(20, 10, 1);
Vector3 a2 = new Vector3(20.05f, 10.05f, 1.05f);
这么写是可以的;Vector3(20.05, 10.05, 1.05),这么写则报错;
向量可以直接相加,或进行数乘;
然后输出几个向量的成员看一下;
运行程序;如果出现 VS正在等待某个操作 的错误,去掉下图 启用IntelliTrace 的勾;
出现下面2个错误;
把.net framework 版本改为2.0;
改为2.0以后一些引用无效了,如下图变黄的;移除;
相关的一些命名空间注释掉;
//using System.Linq;
//using System.Threading.Tasks;
再运行,又出现下图错误; 下回继续;