Построение двух параллельных прямых на расстоянии r от заданной прямой ax + by + c = 0
with open('line3.in', 'r') as fin:
a, b, c, r = map(int, fin.readline().split())
c1 = c - r * (a**2 + b**2)**0.5
c2 = c + r * (a**2 + b**2)**0.5
with open('line3.out', 'w') as fout:
fout.write(str(a) + " " + str(b) + " " + str(c1) + "\n")
fout.write(str(a) + " " + str(b) + " " + str(c2) + "\n")
#include <bits/stdc++.h>
using namespace std;
int main() {
ifstream fin("line3.in");
ofstream fout("line3.out");
double a, b, c, r;
fin >> a >> b >> c >> r;
double norm = sqrt(a * a + b * b);
double c1 = c - r * norm;
double c2 = c + r * norm;
fout << a << " " << b << " " << c1 << "\n";
fout << a << " " << b << " " << c2 << "\n";
return 0;
}
Дана прямая: ax + by + c = 0. Нужно найти уравнения двух параллельных прямых на расстоянии r от неё.
Чтобы сдвинуть прямую на расстояние r, нужно изменить свободный член c:
Две полученные прямые будут параллельны исходной и находиться на расстоянии r от неё.
Ввод: файл line3.in содержит a b c r
Вывод: файл line3.out содержит уравнения двух прямых
3 4 5 2
Исходная прямая: 3x + 4y + 5 = 0, норма = 5
c₁ = 5 - 2·5 = -5
c₂ = 5 + 2·5 = 15
Вывод:
3 4 -5
3 4 15