WPF 3D相机基本坐标简介
基本概念
WPF中3D空间基本坐标系是右手坐标系。
WPF中3D空间的原点是(0,0,0)

Position:
这个参数用来表示相机在空间内的坐标。参数是(X,Y,Z)。当修改相机的这个参数时,这个坐标是根据原点修改。这个概念是最为简单理解的(绿色方块为相机)

LookDirection:
这个参数表示相机看的方向。参数同样也是(X,Y,Z)但注意这个参数的类型是向量。 这个参数有个最基本的算法是 LookDirection=你要看的位置-相机位置。

UpDirection:
这个参数决定相机顶部的方向,也就是向上方向。这个参数是决定相机的倾斜方向。注意这个参数的坐标是根据自身为原点。 同样这个参数类型是向量,也是(X,Y,Z)。默认数值是(0,1,0)。
那么如何理解这个参数呢?
首先需要明白,这个UpDirection是指相机在3D坐标系中向量。

向量A的坐标分别是投影在X,Y,Z上的坐标也就是(AX,AY,AZ),
向量的长度为 根号下(X^2+Y^2+Z^2)
而向量有方向角公式为
cos(A)=AX/A的长度 Ax=A*cos(A)
cos (B) =AY/A的长度 Ay=A*cos(B)
cos (C) =AZ/A的长度 Az=A*cos(C)
并由恒等式: cos^2(A)+cos^2(B)+cos^2(C)=1
根据这些公式就可以求出相机的倾斜的角度
WPF 3D相机基本坐标简介的更多相关文章
- WPF 3D: MeshGeometry3D纹理坐标的正确定义
原文 WPF 3D: MeshGeometry3D纹理坐标的正确定义 为了使基于2D的纹理显示在3D对象中,我们必须定义3D Mesh对象的纹理贴图坐标.在WPF中,此项功能则通过MeshGeomet ...
- WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体
原文:WPF 3D:简单的Point3D和Vector3D动画创造一个旋转的正方体 运行结果: 事实上很简单,定义好一个正方体,处理好纹理.关于MeshGeometry3D的正确定义和纹理这里就不多讲 ...
- WPF 3D 获取鼠标在场景的3d坐标
原文:WPF 3D 获取鼠标在场景的3d坐标 上一篇中我们谈到了WPF 3d做图的一些简单原理,这里我们简单介绍一下怎样获得鼠标在场景中的3d坐标,知道了3d坐标就可以进行很多操作了: 首先介绍一下3 ...
- WPF 3D 知识点大全以及实例
引言 现在物联网概念这么火,如果监控的信息能够实时在手机的客服端中以3D形式展示给我们,那种体验大家可以发挥自己的想象. 那生活中我们还有很多地方用到这些,如上图所示的Kinect 在医疗上的应用,当 ...
- WPF 3D 平移模型+动画(桥梁检测系统)
原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...
- WPF 3D:使用变换中的TranslateTransform3D
原文:WPF 3D:使用变换中的TranslateTransform3D 程序效果: WPF 3D中的TranslateTransform3D应该是所有3D变换中最简单的变换,使用起来非常简单,先定义 ...
- 我的世界 ParaCraft 结合开源地图 OpenStreetMap 生成3D校园的方法简介
我的世界ParaCraft结合开源地图OpenStreetMap生成3D校园的方法简介 版本1.0 日期2019.2.3 作者Ray (82735589@qq.com) www.TimeGIS.com ...
- WPF 3D model - Sphere, Cone, and Cylinder
原文:WPF 3D model - Sphere, Cone, and Cylinder Extending Visual3D - Sphere, Cone, and Cylinder http: ...
- WPF 3D模型的一个扩展方法
原文:WPF 3D模型的一个扩展方法 在WPF 3D中,我们常常需要改变一个ModelVisual3D对象的颜色. 先说说ModelVisual3D,本质上3D模型都是由一个个的三角形构成的,并且经过 ...
随机推荐
- C#数组3(可变数组)
using System; namespace class1 { class program { static void Main(string[] args) { ][];//这里的行必须定义好,但 ...
- 用Python查找数组中出现奇数次的那个数字
有一个数组,其中的数都是以偶数次的形式出现,只有一个数出现的次数为奇数次,要求找出这个出现次数为奇数次的数. 集合+统计 解题思路 最简单能想到的,效率不高.利用集合的特性,通过 Python 的 s ...
- 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)
场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...
- 性能篇系列—stream详解
Stream API Java 8集合中的Stream相当于高级版的Iterator Stream API通过Lambda表达式对集合进行各种非常便利高效的聚合操作,或者大批量数据操作 Stream的 ...
- Java 静态工厂模式的使用
多相关文章请参考:http://www.enjoytoday.cn/categorys/java 静态工厂模式给人的第一印象就是:static+abstract.这两个词汇已经说明了一切,一个是周期长 ...
- [20190531]ORA-600 kokasgi1故障模拟与恢复.txt
[20190531]ORA-600 kokasgi1故障模拟与恢复.txt --//昨天看链接:http://www.xifenfei.com/2019/05/ora-600-kokasgi1-rec ...
- MySQL 主从复制(实时热备)原理与配置
MySQL是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失.为了保证MySQL数据库的可靠性,就要会一些提高可靠性的技术.MySQL主从复制可以做到实时热备数据.本文介绍MySQL主从复制原理 ...
- BouncyCastle配置
1.BouncyCastle简介 BouncyCastle是一款开源的密码包,其中包含了大量的密码算法,使用BouncyCastle的目的就是为了扩充算法支持 下载地址最新加密组件包 http://w ...
- 2.Python爬虫入门_requests
#2019-11-23 #requests的api使用非常简单 import requests import time if __name__=='__main__': # get请求 url_get ...
- mongodb数据库的存储问题
MongoDB在Windows中默认的数据库目录是c:\data.如果在没有该目录的情况下,直接运行mongod.exe,就会报如下错误(并没有把mongodb设置为服务,所以通过命令行的形式启动,注 ...