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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.10.2011, 17:39   #1
spydark91
Форумчанин
 
Регистрация: 01.06.2011
Сообщений: 215
По умолчанию объясните код с точки зрения математики

задача такая-определить находится ли точка в треугольнике,нашел код,но не понимаю его Математического значения,как он работает с точки зрения математики
вот код
Код:
Function WherePoint(ax,ay,bx,by,px,py:real):integer;
var s :real;
begin
    s:=(bx-ax)*(py-ay)-(by-ay)*(px-ax);
    if s>0 then Result:=1
    else if s<0 then Result:=-1
    else Result:=0;
end;
Function PointInsideTreangle(ax,ay,bx,by,cx,cy,px,py:real):boolean;
var s1,s2,s3 :integer;
begin
    Result:=FALSE;
    s1:=WherePoint(ax,ay,bx,by,px,py);
    s2:=WherePoint(bx,by,cx,cy,px,py);
    if s2*s1<=0 then EXIT;
    s3:=WherePoint(cx,cy,ax,ay,px,py);
    if s3*s2<=0 then EXIT;
    Result:=TRUE;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin

if PointInsideTreangle(t1.x,t1.y,t2.x,t2.y,t3.x,t3.y,t.x,t.y) then
  showmessage('внутри')
  else showmessage('нет');
spydark91 вне форума Ответить с цитированием
Старый 24.10.2011, 18:21   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А если написать три уравнения прямой на плоскости и составить систему неравенств, которые описывают множество точек находящихся в полученном треугольнике, то все станет ясно. Только нужно взять карандаш, бумагу и начальный курс аналитической геометрии, впрочем не обязательно, там и школьных знаний достаточно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 24.10.2011, 20:16   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Круто, и как у вас мозг не взорвался?
Мозговыносящее кол-во переменных с эпичными названиями..
Человек_Борща вне форума Ответить с цитированием
Старый 24.10.2011, 22:42   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

ax,ay - координаты первой вершины треугольника
bx,by - координаты второй вершины треугольника
cx,cy - координаты третьей вершины треугольника
px,py - координаты точки
mihali4 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
объясните код spydark91 Общие вопросы Delphi 2 18.07.2011 19:30
Server с точки зрения программирования. Sqverl Помощь студентам 2 23.05.2011 11:35
Высшее образование для программиста: очное vs заочное (с точки зрения работодателя) Руслантус Свободное общение 6 20.05.2011 08:49
Выбрать оптимальный тарифный план с точки зрения минимизации затрат (Паскаль) ZavriK Паскаль, Turbo Pascal, PascalABC.NET 2 05.04.2011 07:59
Какой компонент выбрать для более правильной работы с точки зрения программирования? (Delphi) Art_Divin Помощь студентам 3 09.03.2010 13:43