基于Visual C#的DirectX开发实例——绘制一个三角形

四、绘制一个三角形

通过Direct3D绘制的每个对象都是有三角形组成的,一个三角形由三个点组成,而每个点都定义成一个向量来指定点的XYZ坐标。DirectX中有一种定义顶点的结构,那就是CustomVertex类,只需要在渲染函数中添加类似如下代码即可绘制一个三角形:

            CustomVertex.TransformedColored[] vertices = new CustomVertex.TransformedColored[3];//定义顶点

            vertices[0].Position = new Vector4(150f, 400f, 0f, 1f);

            vertices[0].Color = Color.Red.ToArgb();

            vertices[1].Position = new Vector4(this.Width / 2 , 100f, 0f, 1f);

            vertices[1].Color = Color.Green.ToArgb();

            vertices[2].Position = new Vector4(this.Width-150f, 400f, 0f, 1f);

            vertices[2].Color = Color.Yellow.ToArgb();

其中第一行代码为创建一个数组,用于表示三个顶点的信息。TransformedColored表示顶点坐标为平面坐标且各点都具有颜色,剩下的代码为顶点设置坐标和颜色。下面的代码将告诉device顶点信息的形式并绘制三角形,如下代码:

            device.VertexFormat = CustomVertex.TransformedColored.Format;

            device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertices);

第二句代码实际上是绘制三角形的代码,函数DrawUserPrimitives()的第一个参数表示顶点数据为列表形式,如果要绘制四个三角形则前面定义的顶点数组vertices12个顶点。第二个参数为要绘制的三角形的数目。这段代码要置于device.BeginScene()device.EndScene()之间。运行程序,其结果如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值