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) による Programming Challenges の本を読んでいます。おそらく誰かがこの本を読んでいるはずです。
p1[X] は点 p1 の X 値、[Y] は Y 値です。
この関数は、一次方程式の直線を作成します。( line *l
) 最初の文がx + C (p1[X]) = 0
l になる場合。
私が知らないのは:
C言語では、どのように表現できますか
p1[X]
??p1
一次元配列ですか?ではX
、Y
定数マクロですか??または、C++ を使用して、これはオーバーロードされた operator[] ですか?? 次に、ポイント型が operator[] をオーバーロードしていますか???
それともCにポイント型はありますか?? 「ポイントタイプC」をグーグルで検索しましたが、何も見つかりませんでした。