Страница: 1 | 2 |
|
Вопрос: Оптимизировать, но как?
|
Добавлено: 12.05.05 22:09
|
|
Номер ответа: 16 Автор ответа: SyavX
Вопросов: 25 Ответов: 149
|
Профиль | | #16
|
Добавлено: 21.05.05 21:00
|
Ты прав, это я сдуру.
...
lColor = GetPixel(hDC, X, Y)
If ((lColor And &HFF0000) = &HFF0000) And ((lColor And &HFF& = &HFF& Then
i = (lColor And &HFF00& \ &H100
Arr(i).x = x
Arr(i).y = y
Count = Count + 1
End If
...
Код, которий ты написал будет заносить в массив координаты всех точек, цвет которых похож на RGB(255, xxx, 255), при чем в порядке сверху вниз и слева на право. А я пытаюсь записывать в Arr(1) точку с цветом RGB(255, 1, 255), в Arr(2)...RGB(255, 2, 255) и тд. для того чтобы CreatePolygonRgn правильно создал нужный нам регион.
(как я уже писал это для случая, когда на битмапе уже проставлены точки-вершины в правильном порядке цветами от RGB(255, 1, 255) до RGB(255, 255, 255))
Это ж я к чему вел:
#10: создать массив точек, обрамляющих регион и по ходу программы только вызвать один раз ф-цию CreatePolygonRgn
Ответить
|
Номер ответа: 17 Автор ответа: HOOLIGAN
Вопросов: 0 Ответов: 1066
|
Профиль | | #17
|
Добавлено: 21.05.05 21:50
|
Опять же, какие проблемы: если у тебя индекс массива совпадает с цветом GREEN, то
Arr(clr And &HFF00).x = x
Arr(clr And &HFF00).y = y
Ответить
|
Номер ответа: 19 Автор ответа: HOOLIGAN
Вопросов: 0 Ответов: 1066
|
Профиль | | #19
|
Добавлено: 22.05.05 23:09
|
Тут ошибка закралась:
чтобы по порядку выстроить в массиве, надо
Arr((clr And &HFF00)\256).x = x
Arr((clr And &HFF00)\256).y = y
Тогда координата точки, для которой green=0 будет Arr(0), green=1 будет Arr(1) и т.д. Точки в массиве станут в порядке возрастания значения green. Именно так, как ты хочешь сделать.
Наверное, таким образом ты хочешь указать направление обхода?
Ответить
|
Страница: 1 | 2 |
Поиск по форуму