Помогите пожалуйста!!!!!!!!!! Есть простенький рисунок (к примеру треугольник), этот рисунок нарисован с помощью TCanvas в объекте TPiсture с помощью обычных LineTo и MoveTo, КАК просканировать рисунок горизонтальными линиями и найти пересечение сканирующих линий со сторонами треугольника????????????? И ВООБЩЕ, можно ли это сделать с помощью обычных методов типа тех же TCanvas, TPicture. Я сначала думал попробовать это сделать с помощью OpenGL, но боюсь, что мои знания слишком малы для решения этой задачи в OpenGL. ЗА ПОМОЩЬ ЗАРАНЕЕ СПАСИБО!!!!!!!!!!!!!!
Pengvin 21:07 09.04.2008
нафиг OpenGL, тут надо через DirectDraw .
Если мне не изменяет память у TCanvas есть замечательное св-во Pixels, которое является двумерным массиовм и хранит цвета точек канваса. Значит мы пробегаемся по нужной нам координате, находим точку с цветом отличным от цвета фона - значит пересекли сторону, бежим дальше ищем следующее пересечение и тд.
ColdPay 21:25 09.04.2008
Спасибо огромное! Проглядел... ну не че.
ColdPay 21:55 09.04.2008
Все таки вопрос по OpenGL: как же построить линию, например, до точки пересечения с квадратом, или хотя бы найти эту точку пересечения. НО здесь стоит вопрос именно в OPENGL!
joff 22:03 09.04.2008
Учите математику!
xxx-men 09:07 10.04.2008
Сообщение от ColdPay:
как же построить линию, например, до точки пересечения с квадратом, или хотя бы найти эту точку пересечения.
если ты сам рисуеш этот квадрат, тогда тупо точка пересечения отрезков , короч:
Сообщение от joff:
Учите математику!
если квадрат загружени из bmp файла, то как то(я хз), сканить экран и смотреть пересечия
задачка осложница , если на картинке будут еще кружочки, звездочки и остальная хрень=)
DWanek 20:02 10.04.2008
Математика тебе поможет.
Если есть нарисованная линяя значит есть уравнение этой прямой, проходящей через точки с заданными координатами.
Для квадрата тоже самое: 4 прямые - 4 уравнения прямых.
А уж как найти точку пересечения двух прямых, у которых известны заданные уравнения, я думаю ты догадаешься.
ColdPay 20:07 10.04.2008
Спасибо за напоминания про математику, и так все с помощью нее делаю, я тут просто между делом подумал может как то иначе можно...