第二章 向量的运算(2)

7:向量的最大与最小值
最大值是从两个向量X,Y,Z值中分别取出最大值组成一个新向量;
最小值是从两个向量X,Y,Z值中分别取出最小值组成一个新向量;
看以下代码:
private void VectorMax()
{
Vector3 vec1 =new Vector3(6,2,3);
Vector3 vec2= new Vector3(1,2,5);
Vector3 vec3=Vector3.Maximize (vec1,vec2);
string disString="V(6,2,3)与V(1,2,5)最大值:/n";
disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
MessageBox.Show(disString,"向量最大值");
}
执行结果为:
8:求两个向量间的一个插值向量
设有两个向量pLeft,pRight,得到的向量值计算公式为:
pLeft + interpolater(pRight - pLeft).
举例代码如下:
private void VectorLerp()
{
Vector3 vec1 =new Vector3(6,2,3);
Vector3 vec2= new Vector3(1,2,5);
Vector3 vec3=Vector3.Lerp(vec1,vec2,0.5f);
string disString="V(6,2,3)与V(1,2,5)之间的一个插值向量:/n";
disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
MessageBox.Show(disString,"插值向量");
}
执行结果:
显然 3.5=6+(1-6)*0.5;2=2+(2-2)*0.5;4=3+(5-3)*0.5;
9:点积
数学上定义点积是两个向量的乘积。按下面等式计算:
点积有一个重要的定理称为余弦定律;
u ? v =|u||v|cosθ,表示两个向量的点积是它们的模长和夹角的余弦之积。因此,如果u 和v都是单位向量,那么u ? v就是它们夹角的余弦。
一些点积有用的特性
(1)u ? v = 0,那么u⊥v。
(2)u ? v > 0,那么两个向量的角度θ小于90度。
(3)u ? v < 0,那么两个向量的角度θ大于90度。
比如以下求两个向量的点积示例:
private void VectorDot()
         {
              Vector3 vec1 =new Vector3(6,2,3);
              Vector3 vec2= new Vector3(1,2,5);
              float dotValue=Vector3.Dot(vec1,vec2);
              string disString="V(6,2,3)与V(1,2,5)的点积:/n"+dotValue.ToString();
              MessageBox.Show(disString,"向量点积");   
         }
执行结果如下:
10:叉积
通过把两个向量u和v相乘的到另一的向量p.把u和v两个向量通过十字相乘得到向量p,向量p垂直于u和v。也就是说向量p垂直于u并且垂直于v。
计算公式是:
也就是,得到后来的向量X,Y,Z值分别是:
注意:向量p垂直于u 和v所决定的平面,至于方向因左右手坐标系不同而不同;
以下代码为在XOY平面内两个向量作叉积,最后返回的值垂直于XOY平面,也就是说平行于Z轴;
     private void VectorCross()
         {
              Vector3 vec1 =new Vector3(6,4,0);
              Vector3 vec2= new Vector3(-1,2,0);
              Vector3 vec3=Vector3.Cross(vec1,vec2);
              string disString="V(6,4,0)与V(-1,2,0)的叉积:/n";            disString+="V("+vec3.X.ToString()+" ,"+vec3.Y.ToString()+" ,"+vec3.Z.ToString()+")/n";
              MessageBox.Show(disString,"向量叉积");        
         }
执行结果是:
转自:dandancool http://blog.csdn.net/dandancool/archive/2007/06/26/1666609.aspx

(转)Managed DirectX +C# 开发(入门篇)(三)相关推荐

  1. 无责任Windows Azure SDK .NET开发入门篇三[使用Azure AD 管理用户信息]

    三.使用Azure AD 管理用户信息 在上一章我们采用OpenID的方案和Azure AD交互进行身份验证,本章节我们继续了解如何在Azure AD中创建用户,列出用户信息,修改用户信息和删除用户信 ...

  2. 《Managed DirectX +C# 开发(入门篇)》系列文章

    写在最前: 1.本系列文章版权归tongabcd所有,转载自dandanCool(并非原创作者),此处只作收藏与分享之用. 2.此系列文章如有再转,需按如下方式于文章醒目位置显示标明原创作者极其联系方 ...

  3. 海思软件开发入门篇 (一)

    标题 海思软件开发入门篇 (一)   (第一次写博客,有错别字与写的不好的地方敬请谅解.)   加过很多群,也逛过很多论坛,很多人在问,第一次接触海思不知道从而入手,的确,现在一个SDK动不动上G,还 ...

  4. 【微信小程序】开发入门篇(二)

    前言 ❤️ 所谓信仰,可能就是在人们一无所剩的时候仅有的那种东西 ❤️ [微信小程序]开发入门篇(二) 一.小程序的宿主环境 (1)宿主环境简介 1.1 什么是宿主环境 1.2 小程序的宿主环境 (2 ...

  5. 【微信小程序】开发入门篇(一)

    前言 ❤️ 你可能认为一个人无法改变世界,但我想让你知道,这个世界也无法改变像我这样的人 ❤️ [微信小程序]开发入门篇(一) 一.小程序简介 (1)小程序与普通网页开发的区别 二.第一个小程序 (1 ...

  6. 后悔没早点看这篇直播系统定制开发入门篇

    直播想必大家都不陌生了,在互联网的风口下,以及5G技术的推动,流量带宽的提高,使得直播在我们生活中扮演着越来越重要的角色.本文先来讲一下入门直播需要了解的一些基本概念,搜集整理了直播入门需要了解的一些 ...

  7. 【区块链开发入门】(三) Solidity合约编译、部署

    目录导航页 [区块链开发入门](一) 以太坊的搭建与运行 [区块链开发入门](二) 以太坊的编程接口 [区块链开发入门](三) Solidity合约编译.部署 [区块链开发入门](四) Truffle ...

  8. RISC-V嵌入式开发入门篇2:RISC-V汇编语言程序设计(中)

    原文出处:https://mp.weixin.qq.com/s/3RHss3vhfK004-TtM8fpeA 随着国内第一本RISC-V中文书籍<手把手教你设计CPU--RISC-V处理器篇&g ...

  9. Hololens开发入门篇-郑洪智-专题视频课程

    Hololens开发入门篇-572人已学习 课程介绍         本课程使用Hololens模拟器,基于Unity2017.2及Visual Studio 2017开发 课程收益     学会Ho ...

  10. cesium 页面截图_Cesium开发入门篇 | 02Cesium开发环境搭建及第一个示例

    01 开发环境准备 利用Cesium API进行二次开发属于Web前端开发范畴,目前比较火的Web三剑客包括React.Vue.AngularJS,每个js库的详细介绍可转至官网查看,在此不做详细介绍 ...

最新文章

  1. php消除连续字符,JS字符串去除连续或全部重复字符的实例
  2. sql sum条件求和_SQL进阶7外连接(outer join)
  3. HDU2819Swap(二分图最大匹配)
  4. 双十一购物节,Nacos 1.4.0 + Go SDK 1.0.1发布
  5. 3、java中的数据类型和运算符
  6. webpack钩子调用shell笔记
  7. sklearn datasets 库使用说明
  8. CSS 绘制三角形原理演示(动画)
  9. iOS开发RunLoop学习:三:Runloop相关类(source和Observer)
  10. Redis操作工具类——RedisUtil
  11. 企业 IT 架构转型之道:阿里巴巴中台战略思想与架构实战
  12. [远程控制]木马伪装:图片
  13. 张柏芝谢霆锋喜得贵子
  14. 【编译问题】海思3559A编译问题 texi2dvi:命令找不到
  15. graphpad细胞增殖曲线_应用GraphPad Prism制作生存曲线详细图文过程
  16. 基于asp.net综合管理系统源码,三层架构
  17. 信管通低代码快速开发工具简介(一)
  18. java关键字有什么用_JAVA中关键字有什么用
  19. 鸟哥的私房菜——BASHShell
  20. 怎么用MindManager将导图导出为HTML5交互式导图

热门文章

  1. LCP 44. 开幕式焰火
  2. 盒子阴影(HTML、CSS)
  3. THREEJS - 动态标签(texture纹理方式)
  4. Zookeeper的一些概念
  5. Effective C++ 条款42
  6. 万能的林萧说:我来告诉你,一个草根程序员如何进入BAT。 - 今日头条(www.toutiao.com)...
  7. C++位运算:求 int 绝对值
  8. iOS中真机连接电脑运行程序出现问题
  9. Ubuntu使用谷歌浏览器登录账号时崩溃
  10. 暴力 ZOJ 1403 Safecracker