|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.03.2014, 15:27 | #1 |
Пользователь
Регистрация: 13.03.2014
Сообщений: 23
|
Расстояние от прямой до треугольника.
Hапишите пожалуйста какие нужно использовать формулы для нахождения правильного результата, не могу понять как решить это задание. Заранее спасибо!
Описание задания: Найти расстояние между прямой, проходящей через две точки K(x_k, y_k) и М(x_m, y_m), и треугольником на плоскости, заданным координатами своих вершин A(x_a, y_a), B(x_b, y_b), С(x_с, y_с). Формат входных данных: [x_k] [y_k] [x_m] [y_m] [x_a] [y_a] [x_b] [y_b] [x_с] [y_с]. Координаты задаются целыми числами в диапазоне ±1000. Пример: 0 0 1 5 3 8 4 3 4 5 Формат выходных данных: [расстояние]. Расстояние представляется вещественным число с точностью до двух знаков. Пример: 1.23 Самое простое смог сделать, формулу не знаю какую надо применить Код:
Последний раз редактировалось Stilet; 13.03.2014 в 20:40. |
13.03.2014, 18:34 | #2 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
1. Вам нужно вывести формулу прямой по двум точкам.
2. Потом рассчитать расстояния от линии до каждой точки треугольника. (лениво формулы писать) Минимальное значение и будет искомым расстоянием. 3. учесть случай, когда прямая пересекает треугольник. А это случается, когда точки треугольника с отличным от нуля расстоянием до линии лежат по разные стороны от нее: (соответствующая теория) Последний раз редактировалось Smogg; 13.03.2014 в 18:37. |
13.03.2014, 20:03 | #3 | |
Пользователь
Регистрация: 13.03.2014
Сообщений: 23
|
В чём я ошибся?(пишу код постепенно)
Код:
Цитата:
Последний раз редактировалось Stilet; 13.03.2014 в 20:40. |
|
13.03.2014, 20:36 | #4 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
sqrt((float)(a^2+b^2)) - тип аргумента, передаваемого в scanf, нужно привести к float/double.
Или можете сразу объявить a, b, с как double. Тогда и результат a^2+b^2 тоже будет double. |
13.03.2014, 21:03 | #5 | |
Пользователь
Регистрация: 13.03.2014
Сообщений: 23
|
Цитата:
получились d1=2.85 d2=6.94 d4=6.12 вместо 1.23 где я ошибся? |
|
13.03.2014, 21:48 | #6 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
a^2 - не возведение в квадрат. ^ - это оператор исключаюещего ИЛИ
Последний раз редактировалось Smogg; 13.03.2014 в 22:02. |
13.03.2014, 23:33 | #7 | |
Пользователь
Регистрация: 13.03.2014
Сообщений: 23
|
Цитата:
1.23 так близко.... |
|
14.03.2014, 11:55 | #8 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
Код:
|
15.03.2014, 12:25 | #9 |
Пользователь
Регистрация: 13.03.2014
Сообщений: 23
|
Код:
|
15.03.2014, 21:06 | #10 |
Участник клуба
Регистрация: 14.06.2011
Сообщений: 1,138
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Даны три сторони треугольника a,b,c, написать программу для вычисления трёх высот данного треугольника | giganto97 | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 13.10.2013 11:00 |
Даны декартовы координаты вершин треугольника (в плоскости). Разработать проект, вычисляющий площадь и периметр этого треугольника | Яночка190 | Общие вопросы Delphi | 1 | 12.01.2013 12:49 |
найти расстояние от произвольной точки до ближайшей стороны треугольника. Неправильно находит расстояние | zaira001002 | Помощь студентам | 4 | 05.11.2012 20:55 |
как найти расстояние между отрезком и прямой? | student_92 | Общие вопросы C/C++ | 16 | 20.03.2012 21:50 |
кратчайшее расстояние от заданной точки до ближайщей стороны треугольника | ddeman666 | Помощь студентам | 1 | 03.05.2010 14:47 |