|  | 
 
 | 
| 
 | |||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
|  | 
|  | Опции темы | Поиск в этой теме | Опции просмотра | 
|  | 
| 
			 
			#1  
			
			
			
			
		 | |||
| 
 | |||
|  Помогите с пикселями! Может быть такой вопрос уже задавали, но я не нашла ответа! Задача следующая: програмно посторена кривая, необходимо подсчитать количество пикселей, при этом воспользоваться теоремой Пифагора для расчета расстояния между двумя пикселями.  Наподобие такое я уже делала, когда расчеты ввелись во время рисования линий. | 
| 
			 
			#2  
			
			
			
			
		 | |||
| 
 | |||
|   Кол-во пикселей: Код: procedure TForm1.Button1Click(Sender: TObject);
var
  CurvCol:TColor;
  i,j,pxCount:Cardinal;
begin
CurvCol:=RGB(0,0,0);
pxCount:=0;
Image1.Canvas.FillRect(Image1.ClientRect);
Image1.Canvas.Pen.Color:=CurvCol;
Image1.Canvas.LineTo(Image1.Width,Image1.Height);
for i:=0 to Image1.Width do
    for j:=0 to Image1.Height do
        if Image1.Canvas.Pixels[i,j]=CurvCol then pxCount:=pxCount+1;
Form1.Caption:=IntToStr(pxCount);
end; | 
| 
			 
			#3  
			
			
			
			
		 | |||
| 
 | |||
|   Не совсем поняла, по этому коду моя линию по image прорисовывается по диагонали, но это мне не нужно. Объясню по понятнее свою проблему. Есть линии нарисованные с помощью Image1.Canvas.MoveTo(); и Image1.Canvas.LineTo();. Теперь мне надо найти координаты все, к примеру, пикселей и занести их в массив (пробовала, но выдает ошибку) и затем из координат второго пикселя вычитать координаты первого и находить "длину" по теореме Пифагора (и так со всеми пикселями): n:=n+(sqrt(sqr(ox2-ox1)+sqr(oy2-oy1))); ox1, oy1 - координаты первого, ox2, oy2 - координаты второго. п - "длина" | 
| 
			 
			#4  
			
			
			
			
		 | ||||
| 
 | ||||
|   Тогда надо при рисовании сохранять координаты и считать. А если нарисовано не вами - то надо уже маяться с распознаванием, хоть и относительно простым... |