form1
using
System;using
System.Collections.Generic;using
System.ComponentModel;using
System.Data;using
System.Drawing;using
System.Linq;using
System.Text;using
System.Windows.Forms;using
Microsoft.DirectX;using
Microsoft.DirectX.Direct3D;namespace
amin{
public partial class Form1 : Form{
graphicengine ge; public Form1(){
InitializeComponent();
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.Opaque, true); graphicinitiator gi = new graphicinitiator();ge =
new graphicengine(gi.initdevice(this));}
protected override void OnPaint(PaintEventArgs e){
ge.drawworld();
this.Invalidate(true);}
private void button1_Click(object sender, EventArgs e){
}
}
}
graphic initiator
using
System;using
System.Collections.Generic;using
System.Linq;using
System.Text;using
Microsoft.DirectX;using
Microsoft.DirectX.Direct3D;namespace
amin{
class graphicinitiator{
private PresentParameters presentparams; public graphicinitiator(){
presentparams =
new PresentParameters();presentparams.Windowed =
true;presentparams.SwapEffect =
SwapEffect.Discard;}
public Device initdevice(Form1 frm){
Device device = new Device(0, DeviceType.Hardware, frm, CreateFlags.MixedVertexProcessing, presentparams); return (device);}
}
}
graphic engine
using
System;using
System.Collections.Generic;using
System.Linq;using
System.Text;using
Microsoft.DirectX;using
Microsoft.DirectX.Direct3D;namespace
amin{
class graphicengine{
Device device3d; int i = 110, j = 200, k = 20, count = 0; public graphicengine(Device dev){
device3d = dev;
}
public void drawworld(){
device3d.Transform.Projection=
Matrix.PerspectiveFovLH((float)Math.PI/2,2,50,5);device3d.Transform.View=
Matrix.LookAtLH(new Vector3(0,10,50),new Vector3(10,10,0),new Vector3(0,0,10)); //start draw first triangledevice3d.Clear(
ClearFlags.Target,180, 1.0f, 0); CustomVertex.TransformedColored[] vertices = new CustomVertex.TransformedColored[3]; CustomVertex.TransformedColored[] vertices1 = new CustomVertex.TransformedColored[3]; CustomVertex.TransformedColored[] vertices2 = new CustomVertex.TransformedColored[3]; CustomVertex.TransformedColored[] vertices3 = new CustomVertex.TransformedColored[3]; CustomVertex.TransformedColored[] vertices4 = new CustomVertex.TransformedColored[3]; CustomVertex.TransformedColored[] vertices5 = new CustomVertex.TransformedColored[5];CustomVertex.TransformedColored[] point = new CustomVertex.TransformedColored[3];
vertices[0] =
new CustomVertex.TransformedColored(new Vector4(i, 100, 9, 10),5);vertices[1] =
new CustomVertex.TransformedColored(new Vector4(j, 200, 0, 20), 5);vertices[2] =
new CustomVertex.TransformedColored(new Vector4(k, 200, 30, 30), 5); Form1 f=new Form1(); if (j == f.Width){
count = 0;
}
else if (k == 0){
count = 1;
}
if (count == 1){
j++; i++; k++;
}
else if (count==0){
i--; j--; k--;
}
//draw the triangle was finish //start draw the tow trianglevertices1[0] =
new CustomVertex.TransformedColored(new Vector4(100, 250, 9, 10), 5);vertices1[1] =
new CustomVertex.TransformedColored(new Vector4(150, 250, 9, 10), 5);vertices1[2] =
new CustomVertex.TransformedColored(new Vector4(50, 300, 9, 10), 5);vertices2[0] =
new CustomVertex.TransformedColored(new Vector4(150, 250, 9, 10), 5);vertices2[1] =
new CustomVertex.TransformedColored(new Vector4(200, 300, 9, 10), 5);vertices2[2] =
new CustomVertex.TransformedColored(new Vector4(50, 300, 9, 10), 5); //draw the shape was finish //start write three pointpoint[0] =
new CustomVertex.TransformedColored(new Vector4(300, 300, 9, 10), 0);point[1] =
new CustomVertex.TransformedColored(new Vector4(350, 350, 9, 10), 0);point[2] =
new CustomVertex.TransformedColored(new Vector4(250, 350, 9, 10), 0); //write three point was finish //draw square was startvertices3[0] =
new CustomVertex.TransformedColored(new Vector4(310, 300, 9, 10), 5);vertices3[1] =
new CustomVertex.TransformedColored(new Vector4(350, 300, 9, 10), 5);vertices3[2] =
new CustomVertex.TransformedColored(new Vector4(350, 350, 9, 10), 5);vertices4[0] =
new CustomVertex.TransformedColored(new Vector4(310, 300, 9, 10), 5);vertices4[1] =
new CustomVertex.TransformedColored(new Vector4(350, 350, 9, 10), 5);vertices4[2] =
new CustomVertex.TransformedColored(new Vector4(310, 350, 9, 10), 5); //draw square was finish
vertices5[0] =
new CustomVertex.TransformedColored(new Vector4(200, 400, 9, 10), 5);vertices5[1] =
new CustomVertex.TransformedColored(new Vector4(180, 420, 9, 10), 5);vertices5[2] =
new CustomVertex.TransformedColored(new Vector4(200, 440, 9, 10), 5);vertices5[3] =
new CustomVertex.TransformedColored(new Vector4(180, 460, 9, 10), 5);vertices5[4] =
new CustomVertex.TransformedColored(new Vector4(200, 480, 9, 10), 5);
device3d.BeginScene();
device3d.VertexFormat =
CustomVertex.TransformedColored.Format;device3d.DrawUserPrimitives(
PrimitiveType.TriangleFan, 1, vertices);device3d.DrawUserPrimitives(
PrimitiveType.TriangleList, 1, vertices1);device3d.DrawUserPrimitives(
PrimitiveType.TriangleList, 1, vertices2);device3d.DrawUserPrimitives(
PrimitiveType.TriangleStrip, 1, vertices3);device3d.DrawUserPrimitives(
PrimitiveType.TriangleStrip, 1, vertices4);device3d.DrawUserPrimitives(
PrimitiveType.LineStrip, 1, vertices5);
device3d.DrawUserPrimitives(
PrimitiveType.PointList, 1, point);device3d.EndScene();
device3d.Present();
}
}