Новые сообщения · Правила  
  • Страница 1 из 1
  • 1
Модератор форума: Berestovskiy  
помогите написать, знаю как это в теории сделать, но не знаю
Найти расстояние между произвольно заданными на плоскости отрезком 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;
}
1 | Автор: student_92 | 2012-03-21, 17:01   |  Репутация: [ + 0 ]
Тебе нужна система отщёта. Либо массив 100х1000 либо отрисовка на плоскости размерностью 1000х1000 либо ещё какая нибудь ерунда.
Тоесть получаем столбцы и строки - Х и У.
Координаты двух концов и есть те самые Х и У.
Выполняй проверку чтобы отрезок с прямой не пересекались.
А дальше такая геометрия и вроде тригонометрия которой я в школе не учил.
Тебе понадобится от центра отрезка провести линию(из координат ) перпендикулярную прямой(и с их помощью) и узнать её длинну по некой формуле, как бы не логарифмической.
Ну её нафиг а?
2 | Автор: Kazaam | 2012-05-25, 19:18   |  Репутация: [ + 0 ]
Возьми всё на листочке разрисуй, придумай алгоритм и всё выйдет)

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
3 | Автор: Berestovskiy | 2012-06-06, 22:10   |  Репутация: [ + 211 ]
  • Страница 1 из 1
  • 1
Поиск: