几何库 - 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 类是几何中的点。

有两个成员 xy,代表横坐标和纵坐标。

唯一的成员函数是返回两个点之间的距离。

line 是解析几何中的直线 y=kx+b

两个成员 kb

makeLine 成员函数返回两个点构成的直线(待定系数法)。

hypotenuse 是双曲线,即 y=k/x,makeHypotenuse为待定系数法返回一个点所在的双曲线。

parabola 是抛物线,即 y=ax^2+bx+c。