Найти расстояние между произвольно заданными на плоскости отрезком AB и прямой, проходящей через точки С и D. Формат входных данных: [x_a] [y_a] [x_b] [y_b] [x_с] [y_с] [x_d] [y_d]. Даны координаты соответствующих точек, которые задаются целыми числами в диапазоне ±1000. Пример: 1 5 3 8 4 3 4 5 Формат выходных данных: [расстояние]. Расстояние представляется вещественным числом с точностью до двух знаков. Пример: 1.20
#include "stdafx.h" #include <conio.h> #include <math.h> #include "testing.h"
int main() { int x_a, y_a, x_b, y_b, x_c, y_c, x_d, y_d, x,y; // Ввод координат точки А (х,у) scanf("%f",&x_a); if (x_a > 1000 || x_a < -1000) // Проверка { error_printf("invailed input data\n"); } scanf("%f",&y_a); if (y_a > 1000 || y_a < -1000) { error_printf("invailed input data\n"); }
// Ввод координат точки В (х,у) scanf("%f",&x_b); if (x_b > 1000 || x_b < -1000) // Проверка { error_printf("invailed input data\n"); } scanf("%f",&y_b); if (y_b > 1000 || y_b < -1000) { error_printf("invailed input data\n"); }
// Ввод координат точки С (х,у) scanf("%f",&x_c); if (x_c > 1000 || x_c < -1000) // Проверка { error_printf("invailed input data\n"); } scanf("%f",&y_c); if (y_c > 1000 || y_c < -1000)// Проверка { error_printf("invailed input data\n"); }
// Ввод координат точки D (х,у) scanf("%f",&x_d); if (x_d > 1000 || x_d < -1000) // Проверка { error_printf("invailed input data\n"); } scanf("%f",&y_d); if (y_d > 1000 || y_d < -1000) // Проверка { error_printf("invailed input data\n"); } ....................................
printf("incorrect input"); return 0; }
|
|
|
Тебе нужна система отщёта. Либо массив 100х1000 либо отрисовка на плоскости размерностью 1000х1000 либо ещё какая нибудь ерунда. Тоесть получаем столбцы и строки - Х и У. Координаты двух концов и есть те самые Х и У. Выполняй проверку чтобы отрезок с прямой не пересекались. А дальше такая геометрия и вроде тригонометрия которой я в школе не учил. Тебе понадобится от центра отрезка провести линию(из координат ) перпендикулярную прямой(и с их помощью) и узнать её длинну по некой формуле, как бы не логарифмической. Ну её нафиг а?
|
|
|
Возьми всё на листочке разрисуй, придумай алгоритм и всё выйдет)
Нужна помощь? Сюда: vkontakte.ru/berestovskiy
|
|
|