两个可能常用到的几何知识

  • 圆和椭圆的参数方程
    • 圆的参数方程
      • 特殊圆的参数方程【圆心(0,0),半径R】
      • 一般圆的参数方程【圆心(m,n),半径R】
    • 椭圆的参数方程
    • 引例
      • 分析:这个说法是错误的,怎么纠正呢?
      • 化为参数方程
    • Unity中的使用
    • 参数方程的优点
  • 向量的垂直向量
    • 原理:两个向量垂直的点积为0
    • Unity用法引例
    • 求二维垂直向量
    • 求三维垂直向量
  • 原文参考链接

圆和椭圆的参数方程

圆的参数方程

特殊圆的参数方程【圆心(0,0),半径R】


其参数α的几何意义是圆上动点和圆心连线的旋转角,如下图所示;

一般圆的参数方程【圆心(m,n),半径R】


其参数α的几何意义仿上例理解;

椭圆的参数方程


其参数ϕ的几何意义是对应的大圆或小圆半径的旋转角∠AOM,也就是椭圆的离心角.不是椭圆上动点和中心连线的旋转角∠AOP;切记!

虽然∠AOM∠AOP二者不相等,但是很显然这二者也是一一对应的,并且它们的范围都是==[0,2π)==。

引例

已知椭圆的参数方程为

点M在椭圆上,对应参数t= π 3 \frac{π}{3} 3π​,点O为原点,则直线OM的斜率为 3 \sqrt 3 3 ​。

分析:这个说法是错误的,怎么纠正呢?

当t= π 3 \frac{π}{3} 3π​时,代入得到 x=2cos( π 3 \frac{π}{3} 3π​)=1,y=2sin( π 3 \frac{π}{3} 3π​)=2 3 \sqrt 3 3 ​,故M(1,2 3 \sqrt 3 3 ​),
则kOM= y − 0 x − 0 \frac{y−0}{x−0} x−0y−0​=2 3 \sqrt 3 3 ​。

化为参数方程

介绍一个容易记忆的方法:
类比:cos2θ+sin2θ=1

  • 当圆为x2+y2=4时,先转换为( x 2 \frac{x}{2} 2x​)2+( y 2 \frac{y}{2} 2y​)2=1,
    cos2θ+sin2θ=1 与 ( x 2 \frac{x}{2} 2x​)2+( y 2 \frac{y}{2} 2y​)2=1
    对应上式,得到 cosθ= x 2 \frac{x}{2} 2x​,sinθ= y 2 \frac{y}{2} 2y​,故圆的参数方程为

    当然,我们还可以这样交叉对应,得到 sinθ= x 2 \frac{x}{2} 2x​,cosθ= y 2 \frac{y}{2} 2y​,故圆的参数方程还可以为

说明:

  1. 由此说明,当我们取的参数不一样时,圆的参数方程是不一样的,即圆的参数方程可能不唯一。两种参数的含义不一定一样。
  2. 我们约定俗成的取法是第一种。
  3. 参数方程的参数有时候有明确的几何意义,有时候没有。
  • 当圆为 (x−a)2+(y−b)2=R2 时,先转换为( x − a R \frac{x−a}{R} Rx−a​)2+( y − b R \frac{y−b}{R} Ry−b​)2=1,
    对应上式,得到 cosθ= x − a R \frac{x−a}{R} Rx−a​,sinθ= y − b R \frac{y−b}{R} Ry−b​,故圆的参数方程为
  • 当椭圆为 x 2 a 2 \frac{ x^2}{ a^2} a2x2​+ y 2 b 2 \frac{y^2}{b^2} b2y2​=1 时,先转化为( x a \frac{x}{a} ax​)2+( y b \frac{y}{b} by​)2=1,
    对应上式得到 cosθ= x a \frac{x}{a} ax​,sinθ= y b \frac{y}{b} by​,故椭圆的参数方程为

Unity中的使用

Vector3 point;
float m_width = 5.0f;
float number = 20;
float Stage = 360 / number;
List<Vector3> circle = new List<Vector3>();
for (int i = 0; i < number; i++)
{Vector3 temp = new Vector3(point.position.x + m_width * Mathf.Cos(Stage * i), point.position.y + m_width * Mathf.Sin(Stage * i), 0);circle.Add(temp);
}

最终的结果就是:链表对象circle中存储了20个圆上的点。

参数方程的优点

当处理圆或者椭圆上的任意一点到直线的距离的最值时,参数方程就会体现出它巨大的优越性。原因在于:如果是普通方程时,点的坐标形式为(x,y),转化得到的必然是二元形式的,而如果是参数方程,转化得到的必然是一元形式的,肯定要比二元的简单的多。

向量的垂直向量

原理:两个向量垂直的点积为0

  • 二维状况下,向量(X1,Y1)与垂直向量(X2,Y2)的点积为0。

    即:X1X2+Y1Y2=0

  • 三维状态下,向量(X1,Y1,Z1)与垂直向量(X2,Y2,Z2)的点积为0。

    即:X1X2+T1T2+Z1Z2=0

Unity用法引例

求二维垂直向量

Vector2 dir;
Vector2 verticalDirection = new Vector2(dir.y, -dir.x);

注意:二维状态下,与一个向量垂直的应该是一条线。故结果并不是唯一的。
下面再写几个:

Vector2 verticalDirection_1 = new Vector2(1, -dir.x / dir.y);
Vector2 verticalDirection_2 = new Vector2(-dir.y / dir.x, 1);

求三维垂直向量

注意:三维状态下,与一个向量垂直的应该是一个面。故结果也不是唯一的,比二维状态下情况还要多。
同二维状态,这里我也只写几个:

Vector3 dir;
Vector3 verticalDirection = new Vector3(dir.y, -dir.x, 0);
Vector3 verticalDirection_1 = new Vector3(-_dir.z / _dir.x, 0, 1);
Vector3 verticalDirection_2 = new Vector3(1 , 0 , -dir.x / dir.z);
...

原文参考链接

  1. 圆和椭圆的参数方程:https://www.cnblogs.com/wanghai0666/p/5891493.html;
  2. 二维向量的垂线计算:https://blog.csdn.net/dgtg_tjs/article/details/80507771;
  3. 三维向量的垂线计算:https://blog.csdn.net/cheng219101/article/details/79679797;
  4. 为什么两个垂直向量的点积为0:https://blog.csdn.net/u014756380/article/details/77901834.

两个可能常用到的几何知识(圆与椭圆的方程、求垂直向量)相关推荐

  1. mysql中需要提交的操作_MySQL常用操作及基础知识

    原标题:MySQL常用操作及基础知识 1.启动和关闭mysql服务器: service mysql start service mysql stop 2.重启MySQL服务: service mysq ...

  2. Oracle手边常用70则脚本知识汇总

    Oracle手边常用70则脚本知识汇总 作者:白宁超 时间:2016年3月4日13:58:36 摘要: 日常使用oracle数据库过程中,常用脚本命令莫不是用户和密码.表空间.多表联合.执行语句等常规 ...

  3. 【网络入门】详解常用的基础网络知识(面试笔试常考内容)

    目录 1.概述 2.OSI七层模型和TCP/IP四层模型 3.数据进入TCP/IP协议栈时的封装过程 4.端口的概念 5.TCP建立连接时的三次握手 5.1.TCP头的构成 5.2.三次握手的流程说明 ...

  4. 计算机图形学(八):三维对象的表示(常用的三维几何建模方法)

    几何建模--利用交互方式将现实中的物体模型输入计算机,而计算机以一定的方式将其存储. 常用的三维几何建模方法包括三种:线框建模.表面建模.实体建模. 线框建模 线框建模是利用基本线素来定义设计目标的棱 ...

  5. OpenGL 几何知识

    一 .引言 为什么要学习几何相关知识?因为在OpenGL中所有可视对象都是2D/3D几何图形,对几何图形的移动/缩放/旋转:拉伸/扭曲等:图形从一个场景转换到另一个场景中,都需要借助向量和矩阵的运算. ...

  6. 常用的传感器基础知识扫盲

    传感器的定义是:"能感受规定的被测量并按照一定的规律转换成可用信号的器件或装置,通常由敏感元件和转换元件组成".传感器是一种检测装置,能感受到被测量的信息,并能将检测感受到的信息, ...

  7. Winform开发几个常用的开发经验及知识积累(一)

    本人做Winform开发多年,孜孜不倦,略有小成,其中收集或者自己开发一些常用的东西,基本上在各个项目都能用到的一些开发经验及知识积累,现逐步介绍一些,以飨读者,共同进步.  1.窗口[×]关闭按钮变 ...

  8. 启明云端分享|ESP32-S3开发环境搭建,这里我们会介绍两个比较常用的开发环境搭建:WINDOWS\LINUX

    ESP32-S3开发环境搭建,这里我们会介绍两个比较常用的开发环境搭建:WINDOWS\LINUX 详细安装步骤概览 注:目前master分支,支持S3. 官方开发文档:包含多种平台 https:// ...

  9. 按位与和异或运算符(Python中两个不常用,却重要的运算符)

    Python中两个不常用,却重要的运算符 按位与 和 异或 运算符 **&按位与运算符:**转化为二进制,每一位分别进行运算,每一位相同为1,不同为0 **^异或运算符:**0和任何数都是变成 ...

最新文章

  1. git add后取消_Python 命令行之旅:使用 click 实现 git 命令
  2. 计算机复制粘贴教案,信息技术《文本的复制与移动》教案
  3. java的继承实例_Java继承和多态实例
  4. 天才编程女孩敲开支付宝大门!马云:有梦想的孩子了不起!
  5. oracle Instance status: READY–lsnrctl status|start|stop
  6. 【Flink】Too many fields referenced from an atomic type
  7. 返回一个数组的连续子数组和的最大值
  8. web myeclipse为什么连接不上css_Web技巧 (03)
  9. Zookeeper的一些概念
  10. SpringBoot(十六)_springboot整合JasperReport6.6.0
  11. 程序员,如何在工作之外,增加自己的收入?
  12. viewstate和session(转自博客园)
  13. 微软去年安全业务收入150亿美元、新勒索软件以威联通设备为目标|1月27日全球网络安全热点
  14. 2020计算机一级考试wps分数,计算机一级WPS辅导:在WPS下实现用域真正分数输入技巧...
  15. VMWare安装报错:此安装程序要求您重新启动系统以完成 Microsoft VC Redistributable安装,然后重新运行该安装程序。
  16. 程序员裸辞,利用1个月时间全力找工作,怎么样?
  17. 总账科目往来批量导入程序
  18. 靠2块钱月入4万:越朴素的方法,往往越挣钱
  19. Java将图片处理成背景透明的圆形图片
  20. JSON和list之间的转换

热门文章

  1. Python用Pillow(PIL)进行简单的图像操作(边缘增强、锐利、平滑等)
  2. 二叉树的顺序存储及基本操作
  3. java生成指定范围的随机数(太屌了)
  4. node.js 腾讯镜像站_史上最强Sx05RE游戏整合镜像发布!FBA4ARM永久闭源并停止发布!...
  5. css中vh和wh用法
  6. 最新限量红包封面,限时领取!
  7. SSMS证书已被颁发者吊销解决办法
  8. powershell中文乱码解决办法
  9. 时序数据库为什么选 Prometheus
  10. 复旦大学2015--2016学年第二学期高等代数II期末考试情况分析