几何库 - luosiwei-cmd/CarYon GitHub Wiki
几何库
CarYon 支持笛卡尔坐标系(平面直角坐标系)内的几何库。
源码展示
下面给出几何库的源码供参考。
namespace cgeo {
class point {
public:
double x, y;
point() {
x = 0;
y = 0;
}
double pointDis(point a, point b) {
return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
}
};
class line {
public:
double k, b;
line() {
k = 0;
b = 0;
}
line makeLine(point a, point b) {
line tmp;
tmp.k = (a.y - b.y) / (a.x - b.x);
tmp.b = a.y - ((a.y - b.y) / (a.x - b.x) * a.x);
return tmp;
}
};
class hypotenuse {
public:
double k;
hypotenuse() {
k = 1;
}
hypotenuse makeHypotenuse(point a) {
hypotenuse tmp;
tmp.k = a.x * a.y;
}
};
class parabola {
public:
double a, b, c;
parabola() {
a = 1;
b = 0;
c = 0;
}
};
} // namespace cgeo
功能介绍
point
类是几何中的点。
有两个成员 x
和 y
,代表横坐标和纵坐标。
唯一的成员函数是返回两个点之间的距离。
line
是解析几何中的直线 y=kx+b
两个成员 k
和 b
。
makeLine 成员函数返回两个点构成的直线(待定系数法)。
hypotenuse
是双曲线,即 y=k/x,makeHypotenuse
为待定系数法返回一个点所在的双曲线。
parabola
是抛物线,即 y=ax^2+bx+c。