2D射影空间,为何引入射影空间
2D欧氏空间R2中,点的表示是A(x1,y1), B(x2,y2),二维参数,线的表示是L: y=kx+b,是二维参数;
如何表示点在线上面?可以扩展为(k,-1,b)* (x1,y1,1)t = 0 ,如果不扩展,不在一个大统一的计算框架下面,且 两条平行线的交点没法表示,说明欧氏空间符合现实的理解方式,不符合数学计算美学;
于是大佬们想办法提出了用R3 来表示 2D射影空间:IP2。个人暂时还是无法理解全:
将A(x1,y1), B(x2,y2)等点扩充到 A(x1,y1,1)t, B(x2,y2,1)t , L以ax+by+c=0来表示,即L(a,b,c),如果点P(x1,x2,1)t,在线L上面 有 P t * L = 0,这样 点线就统一了(我们其实知道,这个是点的齐次坐标)
这样表示后,我们发现 kA,kB (k!=0)... 也都在L或者kL上面,是不是变成了矢量的感觉..
索性我们就规定,矢量等价原则
R2中一点A(x1,y1),当k!=0 时,IP2 中 k(x1,y1,1) 都对应于R2中的A这一点
R2中一线L(a,b,c),当k!=0 时,IP2 中 k(a,b,c) 都对应于R2中的L这一条线
这样规定后,
点x(x1,y1,z1),线L(a,b,c)的自由度都降为了2,
点x在直线l上的充要条件是xt * l = 0
两直线 l 与 l' 的 交点是 (l X l')叉乘,右手法则
两点x与x'之间的连线是,(x X x')叉乘,右手法则
无穷远点 与 无穷远线
R2中两平行线 交于 无穷远点,在IP2中计算后,表示为 (x,y,0),维度变成了一维,映衬了n个平行直线交于同一点。
无穷远点在无穷远线上面,以 l∞(0,0,1) 来表示
现在几何都统一到代数计算下面了。
2D射影空间,为何引入射影空间的更多相关文章
- CSS3 Transitions, Transforms和Animation的使用
一.前言 CSS3动画相关的几个属性是:transition, transform, animation:分别理解为过渡,变换,动画.虽意义相近,但具体的功能和在CSS3中承担的工作有一定的差异. t ...
- WWDC 2013 Session笔记 - UIKit Dynamics入门
本文涉及到的WWDC2013 Session有 1.Session 206 Getting Started with UIKit Dynamics 2.Session 221 Advanced Tec ...
- CSS3 Transitions, Transforms和Animation使用简介与应用展示
CSS3 Transitions, Transforms和Animation使用简介与应用展示 by zhangxinxu from http://www.zhangxinxu.com本文地址:htt ...
- iOS基础 - UIDynamic
一.UIKit动力学 UIKit动力学最大的特点是将现实世界动力驱动的动画引入了UIKit,比如重力,铰链连接,碰撞,悬挂等效果,即将2D物理引擎引入了UIKit 注意:UIKit动力学的引入,并不是 ...
- 从java1到java9每个版本都有什么新特性?
每次出新版本,大家大概都会这么问,"Java X会有什么特性呢?" .在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在哪 ...
- Java 发展历史
Java自1995诞生,至今已经20多年的历史. Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名.Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆 ...
- [Java]-Java的版本演化
一.Java SE 8 Java SE 8发行于2014年3月18日,代号culture,这是一个在Java历史上的重大发布 Java SE 8 新特性: Lambda Expressions(Lam ...
- iOS UIKit Dynamics入门 UIKit动力学,实现重力、连接、碰撞、悬挂等动画效果
本文为转载文章 版权归原文所有 什么是UIKit动力学(UIKit Dynamics) 其实就是UIKit的一套动画和交互体系.我们现在进行UI动画基本都是使用CoreAnimation或者UIVie ...
- Java 的版本历史与特性
Java SE 8[2014-03-14发行] Lambda表达式 Pipelines和Streams Date和Time API Default方法 Type注解 Nashhorn JavaScri ...
随机推荐
- java中转译符用"\\"的几种特殊字符
在使用split的方法进行分隔时,要对这几种特殊字符进行"\\"分隔 | * ^ : . 1."|" 示例: String[] splitAddress=add ...
- acrgis导出成tiff图片,全是黑色
任务:将北京道路矢量数据转成栅格然后导出成tiff格式图片. 1. 北京道路有很多种,矢量合并---用到了merge工具 arcgis位置:data management----general---- ...
- 03_安装vsftp服务器
1 安装vsftpd组件 [root@bogon ~]# yum -y install vsftpd 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. 2 添 ...
- 《Java编程思想》读书笔记-对象导论
计算机是头脑延伸的工具,是一种不同类型的表达媒体.本文以背景性的和补充性的材料,介绍包括开发方法概述在内的面向对象程序设计(Object-oriented Programming,OOP)的基本概念. ...
- [LeetCode&Python] Problem 674. Longest Continuous Increasing Subsequence
Given an unsorted array of integers, find the length of longest continuousincreasing subsequence (su ...
- Python全栈之路----常用模块----random模块
程序中有很多地方需要用到随机字符,比如登陆网站的随机验证码,通过random模块可以很容易生成随机字符串. >>> import random >>> random ...
- CCF-URL映射-(正则匹配)-20180303
果然正则表达式是一个强大的工具 更短的代码....hhh 版本1: 正则表达式..so easy~~ #include <iostream> #include <algorithm& ...
- PHP 框架
LARAVEL/LUMEN, CI ,THINKPHP, YII ,SYMFONY YAF, PHALCON ,ICE FRAMEWORK
- Arch Linux 的休眠设置
https://wiki.archlinux.org/index.php/Power_management/Suspend_and_hibernate_(简体中文)https://wiki.archl ...
- jquery中使元素显示和隐藏方法之间的区别
在实际的项目开发中,要使一个元素隐藏的方法有很多,比如css的多种属性和jquery的多种方法,虽然他们的作用都是使元素不可见,但是各个方法实现的原理是不一样的.下面主要介绍jquery各个元素隐藏方 ...