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'類型,本書的作者可能會在之前對其進行定義。 –