Показать сообщение отдельно
  #3  
Старый 24.01.2009, 13:00
czuryk czuryk вне форума
Прохожий
 
Регистрация: 23.01.2009
Сообщения: 12
Репутация: 10
По умолчанию

К сожалению комментариев мне не дали, пришлось прорубать самому. Исходики я чесно сказать забыл с работы унести, остался только главный код, но он вполне работоспособный, если его скинуть в новый проект.
Что именно тебя интересует в варианте по четырем точкам?
Некоторые моментыя и сам не понял,
но примерно что там делается:
заносятся в масивы строки ScanLine из шаблона копируется четыре точки в переменные cPoints для дальнейшего сравнения.
В ассемблерной вставке просто вычисляются точки для сравнения (скоросто работы этого участка сомнительна, скорей просто для эксперемента.)
а потом сравниваются cPoints и указатель на содержимое массива:
Код:
     eq := ((ltPt^ and $FFFFFF) = cPoints[0])
        and ((rtPt^ and $FFFFFF) = cPoints[1])
        and ((lbPt^ and $FFFFFF) = cPoints[2])
        and ((rbPt^ and $FFFFFF) = cPoints[3]);
Ответить с цитированием