C语言平面几何2-距离、长度、模的计算

(1)计算两点之间的距离,或线段的长度

/* 两点之间的距离,线段的长度 */
double DistanceOfPoints(Point A, Point B)
{
	return (double)sqrt((A.x-B.x)*(A.x-B.x) + (A.y-B.y)*(A.y-B.y));
}

(2)计算点到直线的距离

/* 点到直线的距离 */
double DistanceOfPointToLine(Point P, Line l)
{
	double m = (double)sqrt(l.A * l.A + l.B * l.B);	// 分母
	double n = l.A * P.x + l.B * P.y + l.C;	// 分子
	if (n < 0)
		n = 0 - n;
	return n / m;
}

(3)计算向量的模,即向量的长度

/* 向量的模,即向量的长度 */
double VectorLength(Vector v)
{
	return (double)sqrt(v.x * v.x + v.y * v.y);
}

注:由于用到了函数sqrt(),需#include <math.h>,编译时加-lm参数,如gcc -o dist distance.c -lm

你可能感兴趣的:(C语言平面几何2-距离、长度、模的计算)