平面上任意椭圆与点的位置关系
平面上任意椭圆与点的位置关系
问题描述 : 如上图所示,我们的目的是判断在二维空间中任意一椭圆与任意一点pi(xi,yi)p_i(x_i,y_i)pi(xi,yi)的位置关系,这样的位置关系有三种 : 1 点在椭圆上; 2 点在椭圆中; 3 点在椭圆外。
解决思路 :
从最简单的开始讲起, 在初中时候学到过,对于一个焦点在xxx轴或yyy轴的椭圆来讲有标准方程 :
x2a2+y2b2=1\frac{x^2}{a^2} + \frac{y^2}{b^2} = 1 a2x2+b2y2=1
或者
y2a2+x2b2=1\frac{y^2}{a^2} + \frac{x^2}{b^2} = 1 a2y2+b2x2=1
利用标准方程,判断点与椭圆的位置关系十分容易,以焦点在xxx轴上的椭圆为例,∀p(xi,yi)∈R2\forall p(x_i,y_i)\in R^2∀p(xi,yi)∈R2,这里不加证明的给出位置关系的判别式 :
(1) 若
xi2a2+yi2b2<1\frac{x_i^2}{a^2} + \frac{y_i^2}{b^2} < 1 a2xi2+b2yi2<1
点在椭圆内;
(2) 若
xi2a2+yi2b2=1\frac{x_i^2}{a^2} + \frac{y_i^2}{b^2} = 1 a2xi2+b2yi2=1
点在椭圆上;
(3) 若
xi2a2+yi2b2>1\frac{x_i^2}{a^2} + \frac{y_i^2}{b^2} > 1 a2xi2+b2yi2>1
点在椭圆外。
这一块证明的资料很多,在此就不再赘述了。
现在将问题泛化 : 对于任意的一个椭圆如何求其与点pip_ipi的关系。根据上面的结论我们可以很自然的思考,如果通过一种坐标系的变换,将任意的椭圆都变为焦点在xxx轴,或yyy轴的椭圆,那么其与点pip_ipi位置关系的判断将是十分容易,只需要带入已知公式即可,根据这样的思路,我们建立如下坐标系。
如上图所示,在新的坐标系x′0′y′x'0'y'x′0′y′中,椭圆的焦点处于坐标轴上,可以使用椭圆的标准方程进行求解,唯一的问题是如何将任给一点pip_ipi变换到x′0′y′x'0'y'x′0′y′,证明的方式有很多种,在此选用基变换.
下述方法中,变换后向量的起点0′0'0′的坐标是(x0,y0)(x_0,y_0)(x0,y0)点,为了满足这个条件,首先对pip_ipi进行简单的平移变换,
xi=xi−x0yi=yi−y0x_i = x_i - x_0 \\ y_i = y_i - y_0 xi=xi−x0yi=yi−y0
注 :(x0,y0)(x_0,y_0)(x0,y0) 是椭圆圆心坐标.
求解 :
在原始坐标系x0yx0yx0y中选取一组单位正交基{e1⃗,e2⃗},e1⃗=(1,0),e2⃗=(0,1)\{ \vec{e_1},\vec{e_2} \},\vec{e_1} = (1,0),\vec{e_2} = (0,1){e1,e2},e1=(1,0),e2=(0,1),显然pi⃗=xie1⃗+yie2⃗\vec{p_i} = x_i \vec{e_1} + y_i \vec{e_2}pi=xie1+yie2.
如上图先将e1⃗,e2⃗\vec{e_1},\vec{e_2}e1,e2旋转θ\thetaθ角,根据向量旋转公式:
(e1′⃗)T=[cos(θ)−sin(θ)sin(θ)cos(θ)]⋅[10](e2′⃗)T=[cos(θ)−sin(θ)sin(θ)cos(θ)]⋅[01](\vec{e_1'})^T = \begin{bmatrix} \cos(\theta)& -\sin(\theta)\\ \sin(\theta) & \cos(\theta) \end{bmatrix} \cdot \begin{bmatrix} 1 \\ 0 \end{bmatrix} \\ (\vec{e_2'})^T = \begin{bmatrix} \cos(\theta)& -\sin(\theta)\\ \sin(\theta) & \cos(\theta) \end{bmatrix} \cdot \begin{bmatrix} 0 \\ 1 \end{bmatrix} (e1′)T=[cos(θ)sin(θ)−sin(θ)cos(θ)]⋅[10](e2′)T=[cos(θ)sin(θ)−sin(θ)cos(θ)]⋅[01]
综上e1′⃗=(cosθ,sinθ),e2′⃗=(−sinθ,cosθ)\vec{e_1'} = \left ( \cos \theta ,\sin\theta \right ),\vec{e_2'} = (-sin\theta,cos\theta)e1′=(cosθ,sinθ),e2′=(−sinθ,cosθ), 显然其满足这几点 :
(1) e1′⃗,e2′⃗\vec{e_1'},\vec{e_2'}e1′,e2′ 线性无关
(2) e1′⃗⋅e2′⃗=0\vec{e_1'}\cdot\vec{e_2'} = 0e1′⋅e2′=0
(3) ∣e1′⃗∣=∣e2′⃗∣=1\left | \vec{e_1'} \right | = \left | \vec{e_2'} \right | = 1∣∣∣e1′∣∣∣=∣∣∣e2′∣∣∣=1
以上通过旋转矩阵求出了新坐标系下的一组正交基,下面只需要求pi⃗\vec{p_i}pi在新的基下的表示即可,解法有多种,下面展示一种通过求过度矩阵来进行求解的方法 :
将e1′⃗,e2′⃗\vec{e_1'},\vec{e_2'}e1′,e2′通过e2⃗,e2⃗\vec{e_2},\vec{e_2}e2,e2进行表示 :
e1′⃗=cosθ⋅e1⃗+sinθ⋅e2⃗e2′⃗=−sinθ⋅e1⃗+cosθ⋅e2⃗\vec{e_1'} = \cos\theta \cdot \vec{e_1} + \sin\theta \cdot \vec{e_2} \\ \vec{e_2'} = -\sin\theta \cdot \vec{e_1} + \cos\theta \cdot \vec{e_2} \\ e1′=cosθ⋅e1+sinθ⋅e2e2′=−sinθ⋅e1+cosθ⋅e2
由上可以求出过渡矩阵
C=[cos(θ)−sin(θ)sin(θ)cos(θ)]C = \begin{bmatrix} \cos(\theta)& -\sin(\theta)\\ \sin(\theta) & \cos(\theta) \end{bmatrix}C=[cos(θ)sin(θ)−sin(θ)cos(θ)]
所以e1⃗,e2⃗\vec{e_1},\vec{e_2}e1,e2到e1′⃗,e2′⃗\vec{e_1'},\vec{e_2'}e1′,e2′的坐标变换表示为 :
[xi′yi′]=C−1⋅[xiyi]\begin{bmatrix} x_i'\\ y_i' \end{bmatrix} = C^{-1}\cdot \begin{bmatrix} x_i \\ y_i \end{bmatrix} [xi′yi′]=C−1⋅[xiyi]
整理可以得到 :
x′=cosθ⋅x+sinθ⋅yy′=−sinθ⋅x+cosθ⋅yx' = \cos\theta \cdot x + \sin\theta \cdot y \\ y' = -\sin\theta \cdot x + \cos\theta \cdot y x′=cosθ⋅x+sinθ⋅yy′=−sinθ⋅x+cosθ⋅y
上述关系式还可以通过向量间的投影关系得到.
最后将变换后的(xi′,yi′)(x'_i,y'_i)(xi′,yi′)带入判别式,计算即可。
平面上任意椭圆与点的位置关系相关推荐
- C语言入门实战(2):求平面上任意两点之间的距离
这是<C语言入门实战>系列的第2篇. 上一篇:C语言入门实战(1):准备开发环境.快速上手main()函数 下一篇:C语言入门实战(3):秒数转换为时:分:秒 文章目录 题目 提示 参考代 ...
- 【计算机图形学】中点画线法实现焦点在x、y轴上的椭圆绘制
[计算机图形学]中点画线法实现焦点在x.y轴上的椭圆绘制 一.中点画线法原理简介 1.建立基础 中点画线法的原理介绍见直线绘制的博文中点画线法实现任意斜率直线的绘制.基本思路是以下一点在椭圆外/内的位 ...
- s平面上的圆对应的z平面上的图形
简 介: 对于2021年期末信号与系统复习过程中学生提出の关于拉普拉斯变换定义域s平面与z变换的定义与z平面上的圆形对应关系进行实验讨论.显示了不同半径的s平面的上的圆形对应在z平面上的具有不同交叉点 ...
- 高中数学必修二平面解析几何之两直线的位置关系(归纳与整理)
高中数学必修二平面解析几何重点介绍两直线的位置关系基础知识和易误点,并用平面解析几何两直线3个经典习题和2017年高考试题归纳与整理. 一. 基础知识 1. 两直线的平行.垂直与其斜率的关系 2.两条 ...
- 已知长短轴求椭圆上任意一点的坐标_高中数学必修2:平面解析几何——椭圆(经典习题)...
今天接着给大家分享关于高中数学必修2平面解析几何中椭圆知识点讲解,从三个方面进行讲解:基础梳理.要点整理.经典高考习题解题过程及答案. 一.基础梳理 1.椭圆的定义 2.椭圆的标准方程和几何性质 要点 ...
- matlab求椭圆的弧长,用MATLAB实现求椭球上任意两点的最短弧长
基于法向矢量导向的求椭球上两点的最短弧长 问题分析 求椭球上任意两点间的最短弧长用数学来推算解析解的话十分复杂,因此考虑通过使用计算机来近似求解.问题的难点在于怎样让每一步都是处在最优的状态,以及怎样 ...
- 求圆和椭圆上任意角度的点的坐标
圆上任意角度的点的坐标 如上图,给定圆心(Cx,Cy),半径为R, 求θ\thetaθ对应的点的坐标? 此处θ\thetaθ是相对于水平轴的角度. 显然我们可以使用极坐标转换来求: {px=Cx+Rc ...
- c++ 圆上任意点坐标计算_线性代数总结 第三章 向量代数与几何计算(空间平面和直线)...
我的公众号"每日晴天",可关注领取我的笔记pdf版哦~ -------------------------------------------------------------- ...
- 编写一个Applet在屏幕上画椭圆,椭圆的大小和位置由鼠标决定
编写一个Applet在屏幕上画椭圆,椭圆的大小和位置由鼠标决定 package p1;import java.applet.Applet; import java.awt.Dimension; imp ...
最新文章
- 垃圾回收:引用计数与分代收集机制
- vue 引用网络css_vue如何引用其他组件(css和js)
- 「雕爷学编程」Arduino动手做(20)—水银开关模块
- 团队-象棋游戏-成员简介及分工
- 如何实现公平的效绩考核?
- DSSM模型的原理简介,预测两个句子的语义相似度
- 微言Netty:分布式服务框架
- ott盒子 MySQL_LAMP源码环境搭建与phpmyadmin的使用
- C语言利用switch的简单计算器
- 信息安全 —— 密码学
- coldfusion_ColdFusion MX 7功能之旅
- ACWing n-皇后问题
- PCL读取带rgb信息的asc文件C++
- C#程序设计--任何一个自然数m的立方均可写成m个连续奇数之和
- 什么是僵尸进程(Zombie Processes)
- STC Monitor-51的单片机在线仿真调试(转)
- 创建自定义类型转换器
- iwebshop index.php,iWebShop支持nginx配置
- Flume 监控之测试 Ganglia
- HTML+CSS测试题
热门文章
- Prime Time使用
- ubuntu如何播放wmv格式
- 2021-03-19~20 大数据课程笔记 day58day59
- 清明节主题教育课件PPT模板
- 新edge浏览器快捷键
- 纳米软件分析电子测量技术新发展之“智能测试”
- php取qq空间说说id,Python爬取qq空间说说的实例代码
- php talk99,CTF题目实战:2019-Hgame-Web-Week4 - 嘶吼 RoarTalk – 回归最本质的信息安全,互联网安全新媒体,4hou.com...
- 音视频开发录制功能 3GP格式的开发
- python中土耳其编码范围_python中的土耳其语字符