Показать сообщение отдельно
  #5  
Старый 13.11.2006, 09:54
ART ART вне форума
Продвинутый
 
Регистрация: 13.02.2006
Адрес: Магнитогорск
Сообщения: 669
Репутация: 14745
По умолчанию

-------Это должно выполнятся, когда прямая еще не нарисована---------
Код:
//Чтобы не было проблем с занисением данных в массив
type PixelData=record
   Point:Tpoint; //Координаты точки
   Color:TColor //Цвет точки
end;

var
Mass: array of PixelData;   //Наш массив

//Формирование массива
procedure GetMass(x1,y1,x2,y2:integer); //Координаты двух точек через которые проходит прямая
var
t,x,y:integer;
begin
SetLength(Mass,x2-x1);
for t:=x1 to x2 do begin
//Система параметрических уравнений, которой удовлетворяет каждая точка прямой
x:=x1+t*(x2-x1);
y:=y1+t*(y2-y1);
Mass[t-x1].x:=x;
Mass[t-x1].y:=y;
Mass[t-x1].color:=bitmap.canvas.pixel[x,y];  //Здесь твой битмап
end;
end;
Admin: Пока просто напоминание про теги. Стыдно, батенька.
//Не гарантирую правильность и точность (не проверял), возможно сущуствует и более рациональное решение
Ответить с цитированием