Point
 
Возвращает атрибут цвета пикселя по указанным координатам

Синтаксис

result = Point( coord_x, coord_y [,buffer] )
или
result = Point( function_index )


Параметры

coord_x
x координата пикселя
coord_y
y координата пикселя
buffer
буфер изображения для чтения из него
function_index
тип координат экрана для возврата: одно из значений 0, 1, 2, 3

Возвращаемое значение

Если координаты пикселя x, y предоставляются , то Point возвращает атрибут цвета по указанным координатам, как индекс 8-битовой палитры в 8 bpp индексном режиме, или 24-битное RGB значение в 16 bpp режиме (старшие 8 бит целого числа не используются, ограниченная точность R,G,B), или 32-битное значение RGB или RGBA в 32 bpp режиме (Старшие 8 бит не используются или используются под значение Alpha). Обратите внимание, что Point не возвращает 16-битное значение (5 бит R + 6 бит G + 5 бит B).

Если аргументом функции является индекс, Point возвращает одну из координат графического курсора, установленного последней графической командой.

Аргумент Возвращаемое значение 
0 Текущая физическая X координата.
1 Текущая физическая Y координата.
2Текущая логическая X координата. Это возвращает такое же значение как POINT(0) , если не был использован оператор WINDOW.
3Текущая логическая Y координата. Это возвращает такое же значение как POINT(1) , если не был использован оператор WINDOW


Описание

GfxLib Функция с двумя различными видами использования.
Если передаются две координаты, она читает цвет пикселя в координатах coord_x, coord_y экрана, или buffer, если передается.
Возвращение значение является индексом цвета в 256 или меньше цветов Screen, и RGB значением в полноцветных режимах. Если координаты даны вне экрана или вне буфера, то возвращается -1

Если передается одно значение,  Point возвращает одну из координат графического курсора, который был установлен последней графической командой. Если последняя графическая команда  была выполнена для буфера, возвращаемое значение будет координатой из буфера. Аргумент вне диапазона 0-3 вернет 0.

Функция Point не работает в текстовых режимах.

Быстрое примечание: Point предоставляет достоверные результаты, но это довольно медленная операция при многократных вызовах из-за дополнительных расчетов и проверок. Намного лучшая производительность может быть достигнута с помощью прямого доступа к памяти, используя результаты, полученные из ImageInfo и ScreenInfo/ScreenPtr.

Пример

' Режим экрана - 320 x 240 с 8bpp индексным цветом
ScreenRes 320, 240, 8

' Рисуем линию с цветом 12 (светло-красный)
Line (20,20)-(100,100), 12

' Печатаем цвет точки на линии
Print Point(20,20)

' Ждем нажатия клавиши
Sleep


Вывод:
12
Отличия от QB

  • buffer является новым в FreeBASIC
  • В 16 bpp и 32 bpp режимах, возвращается 32-разрядное значение вместо 8-разрядного индекса палитры

См. также