Module: 几何学


Problem

3 /7


Lazy Vasya 和《半条命 3》的发布

Theory Click to read/hide

直线可以用5种不同的方式定义:
1) 方程 \( y = kx + b\);学校里教的第一个直线方程,手工建算方便,但在程序中使用很不方便;
2) 靠2点躺在上面——其实很方便,但是应用范围比较窄;
3) 由一条直线和一个点的法向量——直线的法向量是垂直于它的向量,更多内容见下文;
4) 沿直线和点的指向向量——指向向量是位于直线上并垂直于法向量的向量(好吧,合乎逻辑的),关于它在下面;
5) 直线方程\(ax + by + c = 0\);直线的经典方程,在大多数情况下最通用。现在说说他。
<分区>

这样一条线的法向量坐标:\((a; b)\)\( (-a; -b)\)

这样一条线的方向向量坐标:\((-b; a)\)\ ((b; -a)\).

直线平行如果:
\({a1 \over b1} = {a2 \over b2}\)

一点到一条线的距离(注意:距离可以是负数,这完全取决于点位于线的哪一侧):
\({(a \cdot x_1 + b \cdot y_1 + c) \over \sqrt{a^2 + b^2}}\),
其中x1, y1是点的坐标。

法向量加点,或者方向向量加点,归结起来就是2个点做直线,我们来看一下(也是最常用的).

如果 x1, y1, x 2, y2 - 分别是第一点和第二点的坐标,则

\(a = y_1 - y_2\)

\(b = x_2 - x_1\)

\(c = x_1 \cdot y_2 - x_2 \cdot y_1\)

Problem

奇迹发生了!全世界数百万人梦寐以求的《半条命 3》终于问世了!瓦夏也很期待传奇系列的续作,整整一个月都没有在学校食堂吃饭,够他买这个大作了!阻碍他前进的唯一问题是庞大的代数作业。在课堂上,他经历了一个新话题——直线,现在他需要做多达 N 个任务,通过 2 个点建立一条直线。但是你真的很想玩,第二天告诉你的朋友有多么酷的图形......因此,他请求你,他的朋友,帮助他。
 
输入
第一行包含第一个点的坐标(X1, Y1), ( \(-50 <= X_1, Y_1 <= 50\)).
第二行包含第二个点的坐标(X2, Y2), ( \(-50 <= X_2, Y_2 <= 50\)).
 
输出
在一行中连续打印 3 个整数:直线方程的系数 abc
 
注意:如果您的任务没有成功,但您确定一切正确,请尝试将所有系数乘以 -1。该任务假设您已经使用了讲座/理论中的公式。

 

例子
<头> <日># <正文>
输入 输出
1
-1 -1
1 1
-2 2 0