Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C++ Builder
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2013, 15:07   #1
Алексей95
 
Регистрация: 04.11.2013
Сообщений: 5
По умолчанию програмирование с использованием процедур и функций

Даны координаты вершин треугольника и координаты некоторой точки внутри него. Найти расстояние от данной точки до ближайшей стороны треугольника (при определении расстояний учесть, что площадь треугольника вычисляется и через его стороны, и через основание и высоту) на с++

Последний раз редактировалось Алексей95; 04.11.2013 в 15:11.
Алексей95 вне форума Ответить с цитированием
Старый 04.11.2013, 15:20   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Наработки есть?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 04.11.2013, 15:39   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Честно говоря, не вижу связи между 2 способами вычисления площади и расстоянием между точкой и прямой.

UPD
Freimaks, точно
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 04.11.2013 в 17:24.
BDA вне форума Ответить с цитированием
Старый 04.11.2013, 17:17   #4
Freimaks
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 42
По умолчанию

Ну как вариант, можно найти сначала высоты треугольников, которые образуются сторонами данного треугольника и точкой внутри него. Соответственно высоты получившихся треугольников, опущенные из данной точки, и будут кратчайшими расстояниями от точки до стороны данного треугольника.

1. Вычисляем длину основания нового треугольника
Код:
double AppApp=sqrt(pow(X1-X2,2)+pow(Y1-Y2,2));
2. Вычисляем длину ребер нового треугольника
Код:
double AppPoint1=sqrt(pow(X1-PointX,2)+pow(Y1-PointY,2));
double AppPoint2=sqrt(pow(X2-PointX,2)+pow(Y2-PointY,2));
3. Ну а дальше считаем периметр, площадь и высоту от заданной точки (вершины нового треугольника) к основанию
Код:
double PApp=(AppApp+AppPoint1+AppPoint2)/2;
     double SApp=sqrt(PApp*(PApp-AppApp)*(PApp-AppPoint1)*(PApp-AppPoint2));
     double AppPoint=2*SApp/AppApp;
Freimaks вне форума Ответить с цитированием
Старый 04.11.2013, 17:29   #5
Freimaks
Пользователь
 
Регистрация: 23.04.2011
Сообщений: 42
По умолчанию

Забыл еще добавить - если координаты вершин треугольника и внутренней точки Вы должны задавать сами через поля ввода, то необходимо проводить проверку на возможность существования треугольника и соответственно проверку на то, что точка лежит внутри треугольника, а не в вне его.
Freimaks вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
реализация с использованием процедур и функций Olga1991_1 Общие вопросы C/C++ 6 02.12.2012 01:38
программы с использованием процедур и функций. E.r.r.o.r. Помощь студентам 3 23.01.2012 09:34
Программирование с использованием процедур и функций vampir3001 Помощь студентам 2 14.12.2011 01:05
Программирование с использованием процедур и функций...на Паскале Лизонька Помощь студентам 1 25.02.2010 23:29
Программирование с использованием процедур и функций Лизонька Помощь студентам 2 25.02.2010 22:50