圆与圆相交的交点坐标如何求?
直接联立求,或者是两圆一般方程相减先求出交线方程,再用直线与随便一个圆联立求交点坐标。
圆形规定为360°,是古巴比伦人在观察地平线太阳升起的时候,大约每4分钟移动一个位置,一天24小时移动了360个位置,所以规定一个圆内角为360°。这个°,代表太阳。
圆是一种几何图形。根据定义,通常用圆规来画圆。同圆内圆的直径、半径的长度永远相同,圆有无数条半径和无数条直径。圆是轴对称、中心对称图形。对称轴是直径所在的直线。同时,圆又是“正无限多边形”,而“无限”只是一个概念。
圆可以看成由无数个无限小的点组成的正多边形,当多边形的边数越多时,其形状、周长、面积就都越接近于圆。所以,世界上没有真正的圆,圆实际上只是一种概念性的图形。
圆的定义:
在同一平面内到定点的距离等于定长的点的集合叫做圆(circle)。这个定点叫做圆的圆心。
圆形一周的长度,就是圆的周长。能够重合的两个圆叫等圆。
圆不是一个正n边形(n为无限大的正整数),边长无限接近0但永远无法等于0的正n边形可以近似约等于圆,但并不是圆。
好像看到很多回答这个问题的,大同小异,其实数学方法搞得太复杂,还联立还求角还处理除零问题啥的,晕,这里有个稳定高效的方法来聊聊,我自己的干法:
示意图画了个水平0度的方便说哈,首先呢在以AB圆心距判断确定相交前提下执行计算步骤:
- 主要需要两样东西:CF和∠AB,方法核心主要是算出点F的位置,也就是AF
- 首先算出GH,这个不难,用GH的中分点GH/2咱们定义为F',用AF'在AB中的比例位置AF'/AB * GH即可得出F位置,也就是AF
- 通过半径h和AF得出CF,这里用的是勾股定理,前面都是加减运算,只有最后需要做一个旋转,简单吧。就是把AC旋转∠AB就可以得出最后结果,放在代码里差不多就是
ptACrot.x = _dist_AF ,ptACrot.y = - _dist_CF ,::AxMathRotate(ptACrot ,_angle_AB)
,focuspoint[0].x = centre0.x + ptACrot.x ,focuspoint[0].y = centre0.y + ptACrot.y;
ptACrot.x = _dist_AF ,ptACrot.y = + _dist_CF ,::AxMathRotate(ptACrot ,_angle_AB)
,focuspoint[1].x = centre0.x + ptACrot.x ,focuspoint[1].y = centre0.y + ptACrot.y;
- 就是这样,适应性很强效率很高的一个办法,除法只有算AF时有一个并且不可能除零情况。即使圆包含且不相交情况它也能给算出正确的正切点位置,用在不定量相交计算中比较方便