Что нового

Как узнать первую и последнюю координату, да ещё если цвет не сплошной?

agikon

Знающий
Сообщения
789
Репутация
17
прилагаю картинку.
http://s7.postimage.org/vyeisxsh5/image.jpg
image.jpg

То есть задача узнать ширину которую занимают эти два прямоугольника.
то есть от конечного X, отнять начальный Х, и получится ширина.

Так вот как узнать общую ширину прямоугольников+разрыв:
1)первую и последнюю координаты
2)с условием что прерывание между прямоугольниками не должно превышать 200 пикселей.
(если больше 200 пикселей то второй прямоугольник тот что больше не учитывать)

Помогите пожалуйста.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А верхняя граница прямоугольников на одной координате находится?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
нет.
на разных.

но ось Y как бы не учитывать.
То есть сканируется вся заданная область, но учитывать только по X.
А как они выше или ниже друг относительно друга не важно.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Берешь PixelSearch.

1. Ищешь красную точку.

1.1 *

2. От красной точки до правого нижнего угла ищешь белую точку - это конец первого прямоугольника.

3. От этого места до правого нижнего угла ищешь красную точку - это начало второго прямоугольника.

4. От этого места до правого нижнего угла ищешь белую точку - это конец второго прямоугольника.

------------------------------------------------------------------------------------

* В этом месте может оказаться уже второй прямоугольник. Тогда нужно искать первый прямоугольник слева от этой точки.
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
А чтобы без поиска белого пикселя никак не можно?
То есть вместо поиска белого пикселя заменить на поиск любого другого отличительного от красного. И тогда от этого другого пикселя уже искать красный другого прямоугольника.
То есть чтобы не быть привязаным к белому.
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
А можно провести горизонтальную линию которая ВСЕГДА пересекает оба прямоугольника?
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
нет.
потому что прямоугольники вообще могут не быть на одной линии по горизонту. то ест один очень высоко. а второй очень низко.
 

winstan

Эксплотатор)
Сообщения
406
Репутация
79
Размеры прямоугольников постоянные?


Добавлено:
Сообщение автоматически объединено:

Вчастности левого, и если нет то какие диапазоны размеров принимает


Добавлено:
Сообщение автоматически объединено:

Код:
; Script Start - Add your code below here
Opt("PixelCoordMode", 1)
#include <Array.au3>

$x0=0
$y0=0
$x_max=600
$y_max=200

$x_all=$x_max-$x0
$y_all=$y_max-$y0
Global $colorarry[$x_all]
For $x=0 to $x_all
		PixelSearch($x0+$x,$y0,$x0+$x,$y_max,0xfe0000)
		if Not @error Then
		$colorarry[$x]=1
		EndIf
Next
_ArrayDisplay($colorarry)
For $x=0 to $x_all
	if $colorarry[$x]=1 Then
		$k1=$x
		ExitLoop
	EndIf

Next

For $x=$k1 to $x_all
	if Not $colorarry[$x]=1 Then
		$b1=$x
		ExitLoop
	EndIf
Next

For $x=$b1 to $x_all
	if $colorarry[$x]=1 Then
		$k2=$x
		ExitLoop
	EndIf
Next

For $x=$k2 to $x_all
	if Not $colorarry[$x]=1 Then
		$b2=$x
		ExitLoop
	EndIf
Next

MsgBox(0,0,'Начало красного промежутка'&$k1)
MsgBox(0,0,'Начало второго красного промежутка'&$k2)
MsgBox(0,0,'Начало белого промежутка'&$b1)
MsgBox(0,0,'Начало второго белого промежутка'&$b2)

Как вариант для начала :smile:
дальше уже работая с массивом можно расчитать промежутки и нуждые размеры какбы в 1D режиме ;D
 
Верх