|
|
Регистрация | << Правила форума >> | 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
|
||||
|
||||
Тогда надо при рисовании сохранять координаты и считать.
А если нарисовано не вами - то надо уже маяться с распознаванием, хоть и относительно простым... jmp $ ; Happy End! The Cake Is A Lie. |