前文;

https://blog.csdn.net/bcbobo21cn/article/details/112729045

平移变换矩阵的定义如下;

除了对角全为1,以及px、py、pz之外,都为0;px、py、pz 是三个轴的平移量;

把一个三维物体各顶点坐标乘以T(p)矩阵,该物体就会被平移px、py、pz;

先在窗体级定义一个矩阵,Microsoft.DirectX.Matrix m1; Render()函数如下;其他代码见前文的前文;

public void Render(){if (device == null)   //如果device为空则不渲染{return;}device.Clear(ClearFlags.Target, Color.DarkSlateBlue, 1.0f, 0);  //清除windows界面为深蓝色device.BeginScene();//在此添加渲染图形代码CustomVertex.TransformedColored[] vertices = new CustomVertex.TransformedColored[3];//定义顶点vertices[0].Position = new Vector4(100f, 200f, 0f, 1f);vertices[0].Color = Color.Red.ToArgb();vertices[1].Position = new Vector4(this.Width / 2, 50f, 0f, 1f);vertices[1].Color = Color.Green.ToArgb();vertices[2].Position = new Vector4(this.Width - 150f, 100f, 0f, 1f);vertices[2].Color = Color.Yellow.ToArgb();m1.M11 = 1; m1.M12 = 0; m1.M13 = 0; m1.M14 = 0;m1.M21 = 0; m1.M22 = 1; m1.M23 = 0; m1.M24 = 0;m1.M31 = 0; m1.M32 = 0; m1.M33 = 1; m1.M34 = 0;m1.M41 = -75.0f; m1.M42 = 5.0f; m1.M43 = 25.0f; m1.M44 = 1;Vector4 v41 = new Vector4(100f, 200f, 0f, 1f);v41.Transform(m1);vertices[0].Position = v41;Vector4 v42 = new Vector4(this.Width / 2, 50f, 0f, 1f);v42.Transform(m1);vertices[1].Position = v42;Vector4 v43 = new Vector4(this.Width - 150f, 100f, 0f, 1f);v43.Transform(m1);vertices[2].Position = v43;device.VertexFormat = CustomVertex.TransformedColored.Format;device.DrawUserPrimitives(PrimitiveType.TriangleList, 1, vertices);device.EndScene();device.Present();}

定义m1之后把m1赋值为平移变换矩阵;平移量在第四行赋值;然后对三个顶点用m1作变换;

未应用m1进行变换和进行了变换的输出对比如下;

如只对 vertices[0].Position 应用m1进行变换则输出如下;

有时间再继续;

C# DirectX编程对基本三角形应用平移变换矩阵相关推荐

  1. c#/winform Directx编程入门之实现立方体

    c# directx编程入门之实现立方体 一.Directx简介      Directx是微软公司开发的一套功能丰富的底层API ,由C++编写,它可让以Windows为平台的游戏或多媒体程序获得更 ...

  2. 我的directX编程学习(4)-坐标变换初步

    这些天对左边变换比较感兴趣.申明,本人对游戏编程没兴趣,只是近体做的项目用了DirectX而已,用了就要懂么!况且坐标变换也挺用脑的,我的大脑已经很久没用了,快锈死了,得动动了. 我的directX编 ...

  3. java报告(一)编程打印一个三角形的乘法口诀表

    编程打印一个三角形的乘法口诀表(注意对齐),并练习对程序进行单步运行.断点调试等. 实验要求: 1. 在实验报告中给出程序运行结果截图. 2. 源程序代码附到实验报告的最后. 3. 认真填写实验报告并 ...

  4. 三角形的平移、旋转,在VC上实现(矩阵的应用)

    三角形的平移.旋转 原理很简单: 平移 将图形对象从一个位置(x, y)移到另一个位置(x',y')的变换. Tx= x' -x,Ty= y' -y称为平移距离. 平移变换公式为: 如下图所示: 旋转 ...

  5. java三角形代码,Java编程实现帕斯卡三角形代码示例

    源程序揭秘 杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1. 第 n 行的数字个数为 n 个. 第 n 行数字和为 2^(n-1) . 每个数字等于上一行的左右两个数字之 ...

  6. DirectX编程:C#中利用Socket实现网络语音通信

    现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall.快门等等.它们提供的功能除了网络上的语音通话外,还可以与固定电话.手机等通话.在本篇中主要介绍利用C#实现语音通信的基本 ...

  7. DirectX编程入门

    DirectX编程入门 初始化一个D3D对象 #include <d3d9.h> #pragma comment(lib,"d3d9.lib") int WINAPI ...

  8. 用动态规划算法编程实现数字三角形问题

    用动态规划算法编程实现数字三角形问题 前言 一.用动态规划算法编程实现数字三角形问题 如下所示为一个数字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 请编一个程序计算从顶至底的 ...

  9. DirectX编程:C#中利用Socket实现网络语音通信[初级版本]

    [声明:本篇来源:http://www.cnblogs.com/stg609/archive/2008/11/19/1334544.html 作者:stg609] 现在时下的VOIP软件很多,比较有名 ...

最新文章

  1. Runtime.getRuntime()
  2. 【MongoDB数据库】怎样安装、配置MongoDB
  3. python3菜鸟教程-Python3 运算符
  4. 寄语2013应届实习生
  5. C# List 嵌套学习总结
  6. 运行 ui5 serve 命令行报错的处理方法
  7. xcode5(iOS7)新特性-asset catalog与image slicing
  8. touchesEnded不响应
  9. 哈希表 HashTable对象 c#
  10. android ui新控件,android_常用UI控件_01_TextView3_点击打开新的activity
  11. 蒸汽管道图纸符号_管道设备表常用符号.ppt
  12. ResNet18、50模型结构
  13. 防火墙OPNsense安装
  14. CocosCreator 基于Assembler实现的图片切割破碎效果及自定义遮罩
  15. bayaim_今晚打老虎
  16. 看完了 2021 CSS 年度报告,我学到了啥?
  17. php最大的论坛,phpwind论坛史上最大漏洞 -电脑资料
  18. 用计算机修改图片或照片,如何利用电脑自带的画图工具修改图片的基本属性
  19. 进化三部曲,从互联网大脑发育看产业互联网的未来
  20. 元柚话TK:海外抖音TikTok+独立站如何搭建?

热门文章

  1. c++定义一个动态对象数组_如何在Python中自定义一个可被调用的对象实例?
  2. 99. 恢复二叉搜索树
  3. 计算机网络——网络地址转换(NAT)
  4. Vue body样式修改
  5. Unity学习笔记2 简易2D横版RPG游戏制作(二)
  6. Python 技术篇-用flask服务实现mac本地文件上传至windows服务器指定文件夹下实例演示
  7. Python 技术篇-利用Office VBA实现word文档转化为pdf文档实例演示
  8. C语言 匿名联合体和匿名结构体
  9. CTFshow 信息收集 web3
  10. 第四周实践项目4 建立算法库——双链表