|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
цвет пикселей, через которые проходит прямая.
На bitmap проводится линия, необходимо узнать цвет пикселей, через которые она проходит.
1)как организовать проверку вдоль линии(учитывая ее наклон) 2) Возникает проблема с занесением данных в массив. Не знаю, как занести данные о координатах, при таком коде получается несовместимость Tpoint и integer. type PixelData=record kx:Tpoint; ky:Tpoint; //Координаты точки Color:TColor //Цвет точки end var Mass: array of PixelData; procedure GetMass(x1,y1,x2,y2:integer); //Координаты двух точек через которые проходит прямая var t,x,y:integer; d:real; begin d:= sqrt(sqr(x2-x1)+sqr(y2-y1)); SetLength(Mass,d); for t:=x1 to x2 do begin (перебор по горизонтали, не учитывая наклон) //Система параметрических уравнений, которой удовлетворяет каждая точка прямой x:=x1+t*(x2-x1); y:=y1+t*(y2-y1); Mass[t-x1].kx:=x; Mass[t-x1].ky:=y; Mass[t-x1].color:=bitmap.canvas.pixel[x,y]; end; end; |