typedef struct {
double a; // coefficient for x
double b; // coefficient for y
double c; // constant term
} line;
points_to_line(point p1, point p2, line *l)
{
if (p1[X] == p2[X]) {
l->a = 1;
l->b = 0;
l->c = -p1[X];
} else {
l->b = 1;
l->a = -(p1[Y]-p2[Y])/(p1[X]-p2[X]);
l->c = -(l->a * p1[X]) - (l->b * p1[Y]);
}
我正在阅读(Steven S. Skiena 和 Miguel Revilla)的《编程挑战》一书,也许有人应该读过这本书。
p1[X]是点p1的X值,[Y]是Y值。
该函数生成线性方程线。( line *l
) First If 句子使到x + C (p1[X]) = 0
l。
我不知道的是:
在 C 语言中,我该如何表示
p1[X]
??是
p1
一维数组吗?那么,X
又Y
是常量宏吗??或者,使用 C++,这是一个重载的 operator[] 吗?那么,点类型已经重载了运算符[]???
还是C中有点类型?我搜索了谷歌“point type C”,但一无所获。