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

本文介绍如何使用DirectX中的CustomVertex类定义顶点,并通过Direct3D绘制一个彩色三角形。具体步骤包括创建顶点数组、设置顶点的位置与颜色属性、配置设备绘制参数等。

四、绘制一个三角形

通过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()之间。运行程序,其结果如下图所示:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值