椭圆伸缩之思考

我们讨论的椭圆缩放基于二维空间,首先给出以下定义及性质:

1 基点:如果选择一个能控制图形比例(缩放)变换的点,使该点再变换后仍保持不变,则称其为基点(不动点)。

2 比例因子:Sx,Sy分别控制x轴和y轴坐标值的缩小和放大,Sx,Sy为大于0的任何数(两者小于零时会发生镜像,不在我们讨论的范围内),Sx,Sy小于1,图形缩小;Sx,Sy大于1,图形放大。

3 椭圆中心及直径:椭圆是有心曲线,它存在这样的点,该点平分通过它的所有弦,把该点称作是椭圆的中心,把通过中心的弦叫做椭圆的直径。

4 椭圆的共轭直径:对于椭圆的任意直径,容易知道平行于该直径的弦的中点组成弦也是椭圆的直径,这两条直径互为对方的共轭直径。

5 椭圆的轴:在众多的共轭直径中有一对是主方向,该方向对应的直径即共轭又垂直,把这两条直径称为椭圆的轴,称较长的轴为长轴较短的轴为短轴。

6 共轭直径仿射不变性:椭圆的共轭直径在经过仿射变换后仍为共轭直径。

在CAD应用软件程序中,会根据椭圆中心点及长短轴对椭圆进行绘制,但是当椭圆发生伸缩变换后长短轴的位置及大小都会发生改变,需要重新确定长短轴,如下图:

图中红色部分是一个椭圆及其外切长方形,通过观察也可以发现原来的长轴和短轴在经过拉伸(Sx≠Sy)后已不是新椭圆的长轴和短轴,但是根据性质6可知它们仍为新椭圆的共轭直径,之后我们可以根据罗敏雪的《根据椭圆共轭直径绘制椭圆曲线的算法》,由拉伸后的共轭直径求新椭圆的长短轴。罗的算法及配图如下:

(1)给出参数

已知椭圆中心O1(x0,y0),第1条共轭直径的端点为M(xm,ym),第2条共轭直径的端点为N(xn,yn)。

(2)已O1为圆心,以O1n为半径,将N(xn,yn)点顺时针转90度得N1(xn1,yn1)点。

(3)求MN1的中点K(xk,yk)。

(4)求O1K的距离,在直线MN1上取KF=KG=O1K,分别求出FM、GM的距离。

(5)确定椭圆的长半轴大小,短半轴大小,及长短轴方向。

如果fm>gm,

则a=fm,b=gm,

此时,a=fm为长半轴大小,b=gm为短半轴大小,O1F为短轴方向,O1G为长轴方向;

否则a=gm,b=fm,

此时,a=gm为长半轴大小,b=fm为短半轴大小,O1G为的短轴方向,O1F为长轴方向。

参考文献:

罗敏雪:根据椭圆共轭直径绘制椭圆曲线的算法

王穗:圆和椭圆的透视仿射对应

强会英:椭圆拉伸变形长短轴的计算及应用

时间: 2024-08-30 04:40:48

椭圆伸缩之思考的相关文章

从单体架构迁移到微服务,8个关键的思考、实践和经验

转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”.   随着微服务架构的持续火热,网络上针对微服务和单体架构的讨论也是越来越多.去年的时候,社区更多的关注点是在二者的区别以及优缺点辨析上,而今年,越来越多的人开始关注如何从单体架构迁移到微服务上.毋庸置疑,微服务的理念正在席卷整个开发者社区,像Netflix.Uber这样的公司都是非常成功的应用案例. 但需要注意的

有关“视觉神经系统是怎么形成的?”的思考

视觉信息的处理是一个非常复杂的过程,这不由得让我想到了同样位于人们大脑中的新大脑皮层,作为人类智能的起始之地,它的运作也不简单,但是在婴儿时期,它的各部分单元并没有什么不同,不同的功能是在婴儿接受了外界的各种刺激后产生的.我个人倾向于这样一种原创观点:生物感知和处理外界信息的绝大部分的器官或组织都是在出生后才进行完善的,在此之前只是一个具有很强可塑性的存在,这或许是为了帮助生物更好地适应各种环境亦或是绝大部分生物还没有发育这种复杂系统的功能? 那么能不能说视神经的发育在婴儿时期也有可能未发育完全

有关云架构建设和选型的思考

最近在负责公司内部私有云的建设,一直在思考怎么搞云计算,怎么才能够把云架构设计得好一些.本文尽量全面的列出了云架构建设和选型的考量因素. 我们主要从五个层面逐步评估云架构的建设和选型,分别是: 行业生态 企业需求 云计算的能力 潜在的挑战 如何建设 一.行业生态 计算机云经过多年的发展,由一开始的概念,慢慢发展成熟并能够推向市场,提供多种多样的服务,市场空间非常之大. 在云的发展过程中,亚马逊经过多年的深耕积累,发展成为了云行业的标杆企业,甚至可以说是建立了云解决方案的标准.之后,Google.

特征值和特征向量的几何意义、计算及其性质(一个变换(或者说矩阵)的特征向量就是这样一种向量,它经过这种特定的变换后保持方向不变,只是进行长度上的伸缩而已)

  对于任意一个矩阵,不同特征值对应的特征向量线性无关. 对于实对称矩阵或埃尔米特矩阵来说,不同特征值对应的特征向量必定正交(相互垂直).   一.特征值和特征向量的几何意义 特征值和特征向量确实有很明确的几何意义,矩阵(既然讨论特征向量的问题,当然是方阵,这里不讨论广义特征向量的概念,就是一般的特征向量)乘以一个向量的结果仍是同维数的一个向量.因此,矩阵乘法对应了一个变换,把一个向量变成同维数的另一个向量. 那么变换的效果是什么呢?这当然与方阵的构造有密切的关系,比如可以取适当的二维方阵,使得

Android开发软件架构思考以及经验总结

前言 架构设计,到底是什么呢?基于这段时间的学习和自己的一些思考,我认为架构是基于产品和技术所达成的一种共识.我不是专业的架构师,也不是经验老道的开发者.本文目的有三,一是整理这段时间的架构学习和思考以及总结这一年的开发经验教训,二是希望能够与各位朋友探讨移动端App的架构设计,三是希望我们每一个应用开发者能够拥有架构的意识.个人的水平有限,文中如果不当之处,还希望批评指正. 知识大纲 一.萌芽 二.初识架构 1.阅读<架构之美>之论架构 2.分析行业内各个APP的架构演进 (1)架构为什么需

企业云化2.0的深度思考与展望

伴随着IT新技术的发展,像虚拟化.云计算和大数据对大家来说已经不再陌生了.在企业里面进行云化实施的时候,各种新技术在优势显现的同时,随之而来的问题也比较多.上了云之后,有时候我们没有感觉到轻松反而更累了.那么问题出现在哪儿?我们的IT是变得简单还是复杂了?我们的思维是否还禁锢在传统的IT模式里面?下面分享下我们在云化过程当中的思考与实践. 一.企业云化演进的阶段分析 云计算从2006年出现到现在已经发展了有10余年的时间,在这期间硬件资源虚拟化及其管理技术获得繁荣发展,推动人们对云的概念和认识不

【转】ConcurrentMap 分析和思考

预备知识:Java HashMap and HashSet 的实现机制 由预备知识可以知道hashmap 的存储结构为: (图像来自http://www.ibm.com/developerworks/cn/java/j-lo-hash/) 也是说:一个hashmap 内部含有一个Entity 类行的数组,这个数组中的元素都是Entity.实际上我们放入map 中的key 和 value 就对应一个Entity 对象,这个Entity 对象包含一个key.value.hashcode(key 的)

深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己

【转】深入了解 Flexbox 伸缩盒模型

Flexbox(伸缩布局盒) 是 CSS3 中一个新的布局模式,为了现代网络中更为复杂的网页需求而设计.本文将介绍 Flexbox 语法的技术细节.浏览器的支持越来越快,所以当 Flexbox 被广泛支持并应用时你将会快人一步.如果你想知道它是什么并是如何工作的,不妨仔细了解下吧! 为什么需要伸缩布局盒(Flexbox)? 作者长期以来使用表格.浮动.行内块元素和其他 CSS 属性来布局网站内容.然而,这些并不是为复杂的页面和网页应用而设计的.不管是简单的垂直居中,还是灵活的网格布局都很难靠一己