C# DirectX编程对基本三角形应用平移变换矩阵
前文;
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编程对基本三角形应用平移变换矩阵相关推荐
- c#/winform Directx编程入门之实现立方体
c# directx编程入门之实现立方体 一.Directx简介 Directx是微软公司开发的一套功能丰富的底层API ,由C++编写,它可让以Windows为平台的游戏或多媒体程序获得更 ...
- 我的directX编程学习(4)-坐标变换初步
这些天对左边变换比较感兴趣.申明,本人对游戏编程没兴趣,只是近体做的项目用了DirectX而已,用了就要懂么!况且坐标变换也挺用脑的,我的大脑已经很久没用了,快锈死了,得动动了. 我的directX编 ...
- java报告(一)编程打印一个三角形的乘法口诀表
编程打印一个三角形的乘法口诀表(注意对齐),并练习对程序进行单步运行.断点调试等. 实验要求: 1. 在实验报告中给出程序运行结果截图. 2. 源程序代码附到实验报告的最后. 3. 认真填写实验报告并 ...
- 三角形的平移、旋转,在VC上实现(矩阵的应用)
三角形的平移.旋转 原理很简单: 平移 将图形对象从一个位置(x, y)移到另一个位置(x',y')的变换. Tx= x' -x,Ty= y' -y称为平移距离. 平移变换公式为: 如下图所示: 旋转 ...
- java三角形代码,Java编程实现帕斯卡三角形代码示例
源程序揭秘 杨辉三角形性质: 每行数字左右对称,由 1 开始逐渐变大,然后变小,回到 1. 第 n 行的数字个数为 n 个. 第 n 行数字和为 2^(n-1) . 每个数字等于上一行的左右两个数字之 ...
- DirectX编程:C#中利用Socket实现网络语音通信
现在时下的VOIP软件很多,比较有名的就是Skype,还有其它诸如UUcall.快门等等.它们提供的功能除了网络上的语音通话外,还可以与固定电话.手机等通话.在本篇中主要介绍利用C#实现语音通信的基本 ...
- DirectX编程入门
DirectX编程入门 初始化一个D3D对象 #include <d3d9.h> #pragma comment(lib,"d3d9.lib") int WINAPI ...
- 用动态规划算法编程实现数字三角形问题
用动态规划算法编程实现数字三角形问题 前言 一.用动态规划算法编程实现数字三角形问题 如下所示为一个数字三角形: 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 请编一个程序计算从顶至底的 ...
- DirectX编程:C#中利用Socket实现网络语音通信[初级版本]
[声明:本篇来源:http://www.cnblogs.com/stg609/archive/2008/11/19/1334544.html 作者:stg609] 现在时下的VOIP软件很多,比较有名 ...
最新文章
- Runtime.getRuntime()
- 【MongoDB数据库】怎样安装、配置MongoDB
- python3菜鸟教程-Python3 运算符
- 寄语2013应届实习生
- C# List 嵌套学习总结
- 运行 ui5 serve 命令行报错的处理方法
- xcode5(iOS7)新特性-asset catalog与image slicing
- touchesEnded不响应
- 哈希表 HashTable对象 c#
- android ui新控件,android_常用UI控件_01_TextView3_点击打开新的activity
- 蒸汽管道图纸符号_管道设备表常用符号.ppt
- ResNet18、50模型结构
- 防火墙OPNsense安装
- CocosCreator 基于Assembler实现的图片切割破碎效果及自定义遮罩
- bayaim_今晚打老虎
- 看完了 2021 CSS 年度报告,我学到了啥?
- php最大的论坛,phpwind论坛史上最大漏洞 -电脑资料
- 用计算机修改图片或照片,如何利用电脑自带的画图工具修改图片的基本属性
- 进化三部曲,从互联网大脑发育看产业互联网的未来
- 元柚话TK:海外抖音TikTok+独立站如何搭建?