zoukankan      html  css  js  c++  java
  • 绘制三角形

    代码:

    public partial class MainForm : Form
    {
       public MainForm()
       {
           InitializeComponent();
           this.InitialDX();
       }
     
       private Device device = null;
     
       private void InitialDX()
       {
           PresentParameters presentParams = new PresentParameters();
           presentParams.Windowed = true;
           presentParams.SwapEffect = SwapEffect.Discard;
     
           device = new Device(
               0,
               DeviceType.Hardware,
               this,
               CreateFlags.SoftwareVertexProcessing,
               presentParams);
       }
     
       protected override void OnPaint(PaintEventArgs e)
       {
           base.OnPaint(e);
           this.DrawDX();
       }
     
       private void DrawDX()
       {
           if (this.device == null)
               return;
     
           this.device.Clear(ClearFlags.Target,
               Color.AliceBlue,
               1f,
               0);
     
           this.device.BeginScene();
           //绘制DX图形
           this.DrawMyGraphics();
           this.device.EndScene();
     
           this.device.Present();//显示图形
       }
     
       private void DrawMyGraphics()
       {
           CustomVertex.TransformedColored[] vertex =
               new CustomVertex.TransformedColored[3];
     
           vertex[0].Position = new Vector4(
               0,
               this.Height,
               0,
               0);
           vertex[0].Color = Color.Red.ToArgb();
     
           vertex[1].Position = new Vector4(
               this.Width / 2,
               0,
               0,
               0);
           vertex[1].Color = Color.Green.ToArgb();
     
           vertex[2].Position = new Vector4(
               this.Width,
               this.Height,
               0,
               0);
           vertex[2].Color = Color.Blue.ToArgb();
     
           this.device.VertexFormat = CustomVertex.TransformedColored.Format;
           this.device.DrawUserPrimitives(PrimitiveType.TriangleList,
               1,
               vertex);
       }
    }

    结果:

    image

    绘制三角形的代码主要在DrawMyGraphics中。需要注意的是顶点的索引是顺时针的,如果是逆时针,结果就没有三角形了,需要进行特殊设置。

    device.RenderState.CullMode = Cull.None;

  • 相关阅读:
    WINFORM中的COMBOX模糊查询
    C#的XML序列化及反序列化
    C#调用webservice简单实例
    ORACLE简单触发器
    关于搭建webservice以及无法通过URL访问的简易解决办法
    URL类型入参串调用接口
    起点
    dom的操作
    固定定位
    字体、文本属性和背景图定位
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/1950635.html
Copyright © 2011-2022 走看看