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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2010, 04:34   #1
vovey
Пользователь
 
Регистрация: 28.03.2010
Сообщений: 21
Вопрос

Ребят как на построенном треугольнике,подсчитать количество точек,находящихся внутри треугольника и снаружи?Чтобы вывел это все на мемо!!!?

меня больше интересует снаружи,а не внутри!Подскажите как подсчитать?

Внутри треугольника я сделал)))))

//Проверка точек
Код:
for i := 1 to n do
  if PointInTriangle(a[i], m1[1], m1[2], m1[3]) = true
 then
    memo2.Lines.Add ('№'+IntToStr(i));
end;

Function PointInTriangle(p, a, b, c : TPoint): boolean;
var
 Square, Square1, Square2, Square3:real;
begin
  Square :=  abs(((a.X-c.X)*(b.Y-c.Y))-((b.X-c.X)*(a.Y-c.Y)));
  Square1 := abs(((p.X-b.X)*(a.Y-b.Y))-((a.X-b.X)*(p.Y-b.Y)));
  Square2 := abs(((p.X-c.X)*(a.Y-c.Y))-((a.X-c.X)*(p.Y-c.Y)));
  Square3 := abs(((p.X-c.X)*(b.Y-c.Y))-((b.X-c.X)*(p.Y-c.Y)));
  if Square = (Square1 + Square2 + Square3) then
  Result:= true
 else
  Result:= false;
end;

Последний раз редактировалось Stilet; 06.04.2010 в 08:44.
vovey вне форума Ответить с цитированием
Старый 05.04.2010, 10:45   #2
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Странный ты. Если точка не внутри то где она? Снаружи же
Google2010 вне форума Ответить с цитированием
Старый 05.04.2010, 11:54   #3
vovey
Пользователь
 
Регистрация: 28.03.2010
Сообщений: 21
По умолчанию

Я не могу понять,как сделать,чтобы мне выводил на мемо номера тех точек,которые снаружи!Я искал в нете,а найти не могу((Нашел,только ,чтобы выдавал номера точек внутри!
vovey вне форума Ответить с цитированием
Старый 05.04.2010, 12:35   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Цитата:
vovey
, да как вы выведете то все точки в Мемо? . Вы себе представьте треугольник. В Мемо Вы сможете вывести только точки, которые лежат в некой области. Пусть например есть какая то плоскость, некая область, и в этой области или на плоскости существует треуголник. Вам нужно проверить: находится ли точка внутри треугольника или она находится за его пределами, но в этой области, т.е. на этой плоскости. И вот такие точки Вы сможете вывести в Мемо. Есть точка - будет она в Мемо. Нет точки нигде - то и в Мемо ее не будет
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 05.04.2010, 13:21   #5
vovey
Пользователь
 
Регистрация: 28.03.2010
Сообщений: 21
По умолчанию

Не правильно поняли!Я строю треугольник на IMAGE,потом вывожу точки которые,есть в треугольнике на мемо!Осталось найти и вывести точки,которые за треугольником!
vovey вне форума Ответить с цитированием
Старый 05.04.2010, 14:37   #6
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

Код:
//Проверка точек
 for i := 1 to n do
  if PointInTriangle(a[i], m1[1], m1[2], m1[3]) = false
 then
    memo3.Lines.Add ('№'+IntToStr(i));
end;
Google2010 вне форума Ответить с цитированием
Старый 06.04.2010, 06:57   #7
vovey
Пользователь
 
Регистрация: 28.03.2010
Сообщений: 21
По умолчанию

Он так будет выдавать все точки,которые есть в image,И в треугольнику и за ним!А мне нужно,чтобы он выдавал,которые есть за ним!
vovey вне форума Ответить с цитированием
Старый 06.04.2010, 13:00   #8
Google2010
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 316
По умолчанию

А ты проверь
Google2010 вне форума Ответить с цитированием
Старый 06.04.2010, 13:07   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
vovey
Ты пишешь что проверку внутри треугольника ты сделал, вот значит у тебя есть некий набор точек, все которые PointInTriangle=false не попадают, чего же еще?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Две задачи для курсовой Valik102 Паскаль, Turbo Pascal, PascalABC.NET 0 12.05.2009 18:16
Две задачи для курсовой Valik102 Паскаль, Turbo Pascal, PascalABC.NET 0 12.05.2009 18:16
Задача для курсовой Crazy Jimm Помощь студентам 2 20.12.2008 20:20
Срочно нужны материалы для курсовой. Ольчик Свободное общение 1 10.11.2008 12:18