Показать сообщение отдельно
  #1  
Старый 02.12.2006, 18:40
antol antol вне форума
Прохожий
 
Регистрация: 11.11.2006
Сообщения: 3
Репутация: 10
Счастье цвет пикселей, через которые проходит прямая.

На 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;
Ответить с цитированием