简单几何应用
Posted yrz001030
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了简单几何应用相关的知识,希望对你有一定的参考价值。
各个几何点的记录形式:
点:一般用pair记录。pair<int,int>或者结构体Node
直线:在数学上有3种表示方法,但是很明显对于计算机而言并不适用。所以我们可以记录线上一点和方位向量。这就可以确定一条直线了。
线段:记录两点坐标即可
圆:圆心和半径
多边形:开数组按一定顺序记录多边形的每个顶点即可。
三角形两个著名公式:
正弦定理:
R为三角形外接圆的半径。
余弦定理:
一,线的应用
- 判断一个点Q在线的哪侧?
答:也许我们会有点无从下手。但是如果引入向量,我们就可以很好的考虑这个问题了。首先直线我们是用方向向量v和一个点P来表示,我们可以定义PQ向量,然后在PQ向量和V向量进行叉乘,我们从数学知识上可以得知,如果结果为0,则在直线上,如果为正,则在直线下,否则在直线上。(右手定则) - 判断两个线段是否相交?
答:两个线段的位置关系可能有相交,共线,平行,不相交。
a>共线我们判断三点是否共线即可。或者判断两条线段是不是方向向量相同且都过同一点。
b>平行我们可以判断线段所在直线的斜率即可。
c>不相交的意思就是这两条线段离得太远了(但是这两条线段所在的直线却是相交的)。
d>相交的判断,我们可以用到跨立实验,回忆点1之中的内容,我们可以判断一个点Q在线的哪一侧,那么我们现在以A线段作为直线,B线段的两个端点分别为b1,b2.。我们现在就只要判断这两个端点是否在A直线的两侧即可。 - 求两直线的交点坐标?
答:我们想象一下,如果两直线相交了。那么是不是会构成四个角呢?同时这四个角的两条角线如果连接起来,那我们是不是可以构成四个三角形呢?我们现在考虑一个三角形,我们能否通过构成的三角形来求的交点呢?回顾一下已知条件,我们知道两条直线的方向向量和线上一点。那我们也就是知道了那一个三角形的两个顶点和两个方向向量。如下图:
观察上图,我们可以计算|aXb|=|a|*|b|*sin(ß) ,|b*u|=|b|*|u|*sin(θ)。做商可得:
T=|u|*sin(θ)/(|a|*sin(β))。我们观察可以得知|EB|=|u|/sin(β) * sin(θ).(正弦定理可得,同时sin(180-a) == sin(a))。
由T变为|EB|的长我们只需要将其乘上a即可得到。那么此时交点的坐标不就是B的坐标平移|EB|个单位长度吗。 - 求圆与直线的交点坐标?
答:圆与直线有三种位置关系;
a>相离,即圆心到直线的距离大于了半径;
b>相切,即圆心到直线的距离等于半径;那么我们可过圆心做直线A垂直已知直线,因为垂直,所以根据方向向量就可得到。从而将问题转化为两直线求交点。
c>相交,可利用勾股定理将其弦中点坐标求得,那么交点坐标就是中点坐标平移半弦长。
二,多边形的应用
- 如何判断一个点在多边形的内外?
答:对点做一条射线,如果点和多边形的交点为奇数个则在里面,为偶数则在外面。 - 如何求一个多边形的面积?
答:又是向量叉积的应用。我们做一辅助点Q,我们可以得到Q点与多边形顶点的向量。
那么回忆叉积定义,我们可以把多边形的面积公式:
以上是关于简单几何应用的主要内容,如果未能解决你的问题,请参考以下文章