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]);
}
我读通过编程(史蒂芬S. Skiena和Miguel雷维拉)挑战书,也许有人应该已经看过这本书。我期待几何代码,我不知道P1 [X]代码
p1 [X]是点p1的X值,[Y]是Y值。
该函数产生一个线性方程线。 (line *l
) 首先如果sentense使x + C (p1[X]) = 0
变为l。
什么我不知道的是:
在C语言中,我怎么能代表
p1[X]
?是
p1
是一维数组吗?那么,X
和Y
是不变的宏?或者,使用C++,这是一个重载的运算符[]?那么,点类型已经重载了operator [] ???
或者是C中有点类型?我搜索谷歌“点C型”,我什么也没找到。
你的问题的答案应该是在这本书解决。由于C没有内置的'point'类型,本书的作者可能会在之前对其进行定义。 –