椭圆伸缩之思考

article/2025/1/15 17:47:19

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

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为长轴方向。

参考文献:

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

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

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

 

转载于:https://www.cnblogs.com/zhaoweiwei/p/Ellipse.html


http://chatgpt.dhexx.cn/article/8kEm60Dp.shtml

相关文章

自由落体java编程_java模拟自由落体运动源代码

简单做了一个 import java.awt.borderlayout; import java.awt.button; import java.awt.color; import java.awt.frame; import java.awt.graphics; import java.awt.panel; import java.awt.point; import java.awt.event.actionevent; import java.awt.event.actionlistener…

点旋转的java算法_点和椭圆(旋转)位置测试:算法

另一种选择是将所有内容都放入2D旋转椭圆的等式中,并查看结果是否小于1 . 因此,如果以下不等式为真,则在椭圆内部有一个点 其中(xp,yp)是点坐标,(x0,y0)是椭圆的中心 . 我实施了一个小的Mathematica程序&am…

(转载)在Eclipse中使用JUnit4进行单元测试(中级篇)

<原文地址如下&#xff1a;http://blog.csdn.net/andycpp/archive/2006/10/09/1327147.aspx> 我们继续对初级篇中的例子进行分析。初级篇中我们使用Eclipse自动生成了一个测试框架&#xff0c;在这篇文章中&#xff0c;我们来仔细分析一下这个测试框架中的每一个细节&…

用Python模拟小球的平抛运动,及其在落地后的运动轨迹

废话不多说&#xff0c;先上效果演示&#xff08;doge&#xff09;: 1、需求分析 给定一个小球&#xff0c;在离地某高度处给予一初始速度&#xff0c;当其撞击到地面后&#xff0c;速度衰减为原来的α倍&#xff0c;当其速度衰减为初始速度的1%后&#xff0c;运动结束。 2、运…

【达内课程】Eclipse中的junit测试

文章目录 简介使用测试1测试2生成测试报告 简介 使用 下载junit 新建一个java项目&#xff0c;把junit jar包放入项目&#xff0c;右键项目&#xff0c;选择properties&#xff0c;把jar包加进来 测试1 创建如下文件 在这里插入代码片如果出错 如果成功 测试2 新建H…

java斜椭圆_JAVA 任意椭圆方向画法

展开全部 使用32313133353236313431303231363533e4b893e5b19e31333332636266 AffineTransform 把Ellipse2D 旋转一下就可以了。 import java.awt.image.BufferedImage; import java.awt.geom.AffineTransform; import java.awt.geom.Ellipse2D; import java.awt.Color; import …

从STL的视角,了解下Map、Set、Tuple和Initializer_List的区别

&#x1f4d6;作者介绍&#xff1a;22级树莓人&#xff08;计算机专业&#xff09;&#xff0c;热爱编程&#xff1c;目前在c&#xff0b;&#xff0b;阶段>——目标Windows&#xff0c;MySQL&#xff0c;Qt&#xff0c;数据结构与算法&#xff0c;Linux&#xff0c;多线程&…

用Java模拟行星的运动

这段时间都在寝室里自学Java,就想自己写个小程序玩一玩。同时&#xff0c;我也是个三体迷&#xff0c;就想着能不能用学的Java来模拟一下三体运动。这个程序算是我正式写模拟三体运动前的一个尝试。 一、程序分析 首先来百度一番查一下太阳、水星、金星和地球的各种参数(非精确…

java课程设计旋转的行星_Java编程实现的模拟行星运动示例

本文实例讲述了Java编程实现的模拟行星运动。分享给大家供大家参考&#xff0c;具体如下&#xff1a; 期待了很久的Java语言程序设计也拉下了帷幕&#xff0c;在几个月的时间里基本掌握了java的简单用法&#xff0c;学习了java的主要基础知识&#xff0c;面向对象思想&#xff…

JS-圆,椭圆等轨迹相关算法

圆 公式 (x0, y0) 圆心坐标 r&#xff1a;半径 x x0 cos(angle) * r y y0 sin(angle) * r 1、轨迹 <div id"div" style"position:relative; width: 20px; height: 20px; background: cadetblue;"></div><script>/*** 圆心 (x0, y0…

精确绘制椭圆

本文首发于微信公众号「3D视觉工坊」。 前言 圆特征在测量领域中应用广泛&#xff0c;比如&#xff1a;相机标定、位姿估计、目标跟踪等方面。圆经过透视投影&#xff0c;当成像平面与圆平面不平行时&#xff0c;圆经过透视投影为椭圆&#xff0c;圆心的透视投影点与椭圆的中…

cesium椭圆编辑椭圆修改(cesium篇.78)

听老人家说:多看美女会长寿 地图之家总目录(订阅之前必须先查看该博客) 完整代码工程包下载 运行如有问题,可“私信”博主。效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <html lang="en

JS小球绕着椭圆形的轨迹旋转并且近大远小

在ivx中案例如下&#xff1a; VxEditor 效果如下&#xff0c;近大远小 主要代码如下&#xff1a; const centerX 360 / 2; // 椭圆中心的X坐标 const centerY 120 / 2; // 椭圆中心的Y坐标 const a 100; // 长半轴 const b 60; // 短半轴const elementsWithClassName d…

知识图谱实战应用2-知识图谱的知识融合与知识消歧

大家好,我是微学AI,今天给大家带来知识图谱实战应用2-知识图谱的知识融合与知识消歧。 知识图谱是用于表示语义化信息的一种图形化知识表示形式,其中包含了大量的实体、属性和关系。由于知识图谱是由不同来源的知识组成的,因此可能存在同一实体在不同知识源中有不同的表达…

【知识图谱】深入浅出讲解知识图谱(技术、构建、应用)

本文收录于《深入浅出讲解自然语言处理》专栏&#xff0c;此专栏聚焦于自然语言处理领域的各大经典算法&#xff0c;将持续更新&#xff0c;欢迎大家订阅&#xff01;个人主页&#xff1a;有梦想的程序星空个人介绍&#xff1a;小编是人工智能领域硕士&#xff0c;全栈工程师&a…

知识图谱从入门到应用——知识图谱的知识表示:符号表示方法

分类目录&#xff1a;《知识图谱从入门到应用》总目录 相关文章&#xff1a; 知识图谱的知识表示&#xff1a;基础知识 知识图谱的知识表示&#xff1a;符号表示方法 知识图谱的知识表示&#xff1a;向量表示方法 在前面的文章中已经多次提到&#xff0c;知识图谱采用图的方…

《什么是知识图谱?为什么需要知识图谱?知识图谱有什么应用? - 翔哥带你初识知识图谱》

原创实在不易&#xff0c;欢迎大家关注我微信公众号&#xff1a;阳洋up 我本人主要是做知识图谱表示学习研究的&#xff0c;通过读取大量CCF顶会论文以及与导师的交流沟通&#xff0c;逐渐形成了对知识图谱的大的层面上的一些认知&#xff0c;希望在CSDN平台上分享我的一些学习…

知识图谱从入门到应用——知识图谱的知识表示:向量表示方法

分类目录&#xff1a;《知识图谱从入门到应用》总目录 相关文章&#xff1a; 知识图谱的知识表示&#xff1a;基础知识 知识图谱的知识表示&#xff1a;符号表示方法 知识图谱的知识表示&#xff1a;向量表示方法 前文已经介绍过&#xff0c;向量化的表示已经在人工智能的其…

知识图谱|知识图谱的典型应用

作者&#xff1a; cooldream2009 我们构建知识图谱的目的&#xff0c;在于利用知识图谱来做一些事情。有效利用知识图谱&#xff0c;就是要考虑知识图谱的具备的能力&#xff0c;知识图谱具有哪些能力呢&#xff0c;首先我们知道知识图谱包含了海量的数据&#xff0c;是一个超…

知识图谱入门知识(一)知识图谱应用以及常用方法概述

学习内容 搜集各种博客&#xff0c;理解实体识别、关系分类、关系抽取、实体链指、知识推理等&#xff0c;并且总结各种分类中最常用的方法、思路。 由于自己刚刚接触知识图谱&#xff0c;对该领域的概念和方法的描述还不是很清楚&#xff0c;所以只是简单的列出框架和添加链接…