首页 » 技术分享 » C语言平面几何15-线段的垂直平分线

C语言平面几何15-线段的垂直平分线

 

线段AB的垂直平分线:

先求中点M,再根据线段AB的斜率k1求出直线的斜率k2,k1*k2=-1,最后求出线段的方程:kx-y+C=0。

/* 线段的垂直平分线 */
Line PerpendicularBisector(Point A, Point B)
{
	Point m;	// 中点
	m.x = (A.x + B.x)/2;
	m.y = (A.y + B.y)/2;
	
	Line l;
	
	if (dequals(A.y, B.y))	// 线段是水平的
	{
		l.A = -1;
		l.B = 0;
		l.C = m.x;
	}
	else if (dequals(A.x, B.x))	// 线段是垂直的
	{
		l.A = 0;
		l.B = -1;
		l.C = m.y;
	}
	else
	{
		// k1 * k2 = -1
		double k = (A.x - B.x)/(B.y - A.y);
		l.A = k;
		l.B = -1;
		l.C = m.y - k * m.x;
	}
	return l;
}

 

转载自原文链接, 如需删除请联系管理员。

原文链接:C语言平面几何15-线段的垂直平分线,转载请注明来源!

0