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;

  • 相关阅读:
    如何挑选牙膏--2019/10/20
    怎样选卫生纸-2019/10/20
    页面动态加入<script>标签并执行代码
    ss 各种浏览器兼容前缀写法
    nth-child(n)、first-child、last-child用法
    改变checkbox的默认样式
    border和outline的区别
    标签嵌套规则和注意事项
    物理尺寸 转换为 像素
    打印iframe内容
  • 原文地址:https://www.cnblogs.com/sharpfeng/p/1950635.html
Copyright © 2011-2022 走看看