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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2015, 08:06   #1
Ronin94
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 13
По умолчанию Из заданного мн-ва точек на плоскости выбрать 3 разные точки A,B,C так,чтобы внутри треугольника ABC было максимальное число точек

Из заданного мн-ва точек на плоскости выбрать 3 разные точки A,B,C так, чтобы внутри треугольника ABC содержалось максимальное кол-во точек этого мн-ва
Ronin94 вне форума Ответить с цитированием
Старый 28.01.2015, 08:56   #2
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

а здесь что, форум математиков?

как определить- принадлежит ли точка треугольнику?

Последний раз редактировалось SAMOUCHKA; 28.01.2015 в 09:00.
SAMOUCHKA вне форума Ответить с цитированием
Старый 28.01.2015, 21:53   #3
Ronin94
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 13
По умолчанию

Надо прогу написать
Ronin94 вне форума Ответить с цитированием
Старый 29.01.2015, 14:13   #4
challengerr
Участник клуба
 
Аватар для challengerr
 
Регистрация: 30.07.2008
Сообщений: 1,601
По умолчанию

Пример на проверку принадлежности точки треугольнику
Код:
#include <stdio.h>
 
bool f(float x1,float y1,float x2,float y2,float x3,float y3,float x4,float y4)
{
float a1,b1,c1, a2,b2,c2, a3,b3,c3;
float r1,r2,r3;
// 1.x1,y1, x2,y2
a1 = y2 - y1;
b1 = x1 - x2;
c1 = x2*y1 - x1*y2;
 
r1 = a1*x3 + b1*y3 + c1;
r2 = a1*x4 + b1*y4 + c1;
r3 = r1*r2;
 
if (r3 < 0)
return false;
 
// 2.x2,y2, x3,y3
a2 = y3 - y2;
b2 = x2 - x3;
c2 = x3*y2 - x2*y3;
 
r1 = a2*x1 + b2*y1 + c2;
r2 = a2*x4 + b2*y4 + c2;
r3 = r1*r2;
 
if (r3 < 0)
return false;
 
 
// 3.x1,y1, x3,y3
 
a3 = y3 - y1;
b3 = x1 - x3;
c3 = x3*y1 - x1*y3;
 
r1 = a3*x2 + b3*y2 + c3;
r2 = a3*x4 + b3*y4 + c3;
r3 = r1*r2;
 
if (r3 < 0)
return false;
else
return true;
 
}
 
int main()
{
int r;
float x1,y1,x2,y2,x3,y3; // точки треугольника
float x4,y4; // проверяемая точка
 
x1 = 2.0;
y1 = 1.0;
 
x2 = 3.0;
y2 = 0.0;
 
x3 = -1.0;
y3 = 0.0;
 
x4 = 0.9;
y4 = 0.5;
 
r = f(x1,y1,x2,y2,x3,y3,x4,y4);
 
printf("%d\n", r);
 
return 0;
}
"SPACE.THE FINAL FRONTIER.This's a voyage of starship Enterprise. It's 5-year mission to explore strange new worlds,to seek out new life and civilizations,to boldly go where no man has gone before"
challengerr вне форума Ответить с цитированием
Старый 02.02.2015, 18:31   #5
magnet
Пользователь
 
Регистрация: 02.02.2015
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Ronin94 Посмотреть сообщение
Надо прогу написать
Читай этот пост:
http://programmersforum.ru/showthread.php?t=34061
magnet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На плоскости задано множество точек. Определить все тройки точек, которые являются вершинами прямоугольного треугольника Олечка12 Помощь студентам 11 22.04.2014 19:56
Перечислить точки заданного множества точек на плоскости в соответствии с данным порядком ant93 Visual C++ 0 03.04.2013 17:15
Перечислить точки заданного множества точек на плоскости в соответствии с этим порядком dark999 Помощь студентам 0 02.04.2011 18:35
Перечислить точки заданного множества точек на плоскости dark999 Помощь студентам 4 01.04.2011 23:50
определить радиус и центр окружности, на кот. лежит наиб.число точек заданного на плоскости мн-ва точек) kcю Помощь студентам 0 17.11.2009 19:50