Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 сентября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Слушай, дружище, зачем так мучиться с этим языком С++, ты ведь не Билл Гейтс. Возьми тот же Python и программируй, он кроссплатформенный, под Windows тоже работает. Я сам давно заметил: то что на Си пишешь в страницу кода, на питоне решается в одну-две строки. При том, питон намного проще, я его сам недавно изучил по видеокурсу вот этому. Кстати, автор отлично там объясняет. Буквально день-два и уже будешь писать на нём, чего не скажешь про сложный С++.
 
  Как определить пересекаются ли два прямых отрезка на плоскости ?
 
 
 
  Есть задача: требуется определить пересекаются ли два прямых отрезка
 
  на плоскости(есть PointStart и PointEnd для обоих отрезков).Пробовал
 
  математически решить,но привидение пикселей к int все проваливает.
 
  Кто поможет?
 
 
 
  Если надо условие пересечения отрезков, то как вариант:
 
 
 
 - Прямая A*x+B*y+C=0 по двум точкам P1(x1,y1), P2(x2,y2):
 
 A = y2-y2
 
 B = x1-x2
 
 C = -A*x1-B*y1 = y1*x2 - x1*y2
 
 - Расстояние от точки S(x0,y0) до прямой:
 
 r = A*x0 + B*y0 + C /sqrt(A*A + B*B)
 
 
 
 обозначим как
 
 
 
 Q(P1(x1,y1),P2(x2,y2),S(x0,y0)) = r*sqrt(A*A+B*B) =
 
  x0*(y2-y1)+y0*(x1-x2) + y1*x2 - x1*y2
 
 
 
 - Тогда условие пересечения двуч отрезков(a,b) и (A,B):
 
 Q(a,b;A)*Q(a,b;B)<0 && Q(A,B;a)*Q(A,B;b)<0
 
 
 
 пример ф-и на паскале:
 
 
 
 function Q(ax,ay,bx,by,tx,ty:longint):real;
 
 begin
 
 Q:=tx*(by-ay)+ty*(ax-bx)+ay*bx-ax*by;
 
 end;
 
 
 
 


<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS