Журнал о программированнии на языках Blitz3D, BlitzPlus, BlitzMax

Blitz3D-справочник:AutoMidHandle

Материал из Blitz Et Cetera

Перейти к: навигация, поиск

AutoMidHandle enable

Параметры

  • enable - режим установки системы координат картинки
    • true - картинки будут загружаться со смещением начала внутренних координат в центр картинки
    • false - картинки будут загружаться с системой внутренних координат, отсчитываемых от пикселя ( 0, 0 ) (как обычно)

Описание

Когда изображение загружено с помощью команды LoadImage, начало координат картинки (позиция с которой начинается отрисовка картинки) по умолчанию принимается за левый верхний угол - координаты ( 0,0 ). Поэтому изображение 50x50 пикселей при отрисовке в координатах ( 200, 200 ), будет занимать прямоугольную область ( 200...250, 200...250 ). Если же загрузить картинку после команды AutoMidHandle true, то отрисовка той же картинки в координатах экрана 200, 200, займёт область ( 175...225, 175...225 ).

Команда MidHandle перемещает начало координат картинки в центр изображения. Изучите справку по данной команде, чтобы узнать больше о системе внутренних координат. Команда AutoMidHandle избавляет от необходимости применять команду MidHandle для каждого загружаемого изображения с целью переместить внутреннее начало координат изображения в центр.

Замечание: внутренний центр изображения чаще называют указателем (handle), но не следуетего путать с указателями на объекты.

Пример:

; MidHandle/ImageXHandle()/ImageYHandle()/AutoMidHandle


; Граф. режим
Graphics 640,480,16

; Глобальные переменные
Global gfxBall

; Загружаем картинку - вам предстоит изменить путь к вашему файлу
gfxBall=LoadImage ("C:\Program Files\Blitz Basic\samples\all.bmp")

; Повторяем до нажатия ESC ...
While Not KeyHit(1)
Text 0,0,"Указатель поумолчанию для gfxBall...Нажмите ESC ..."
Text 0,14,"X handle-" + ImageXHandle(gfxBall) ; Печатаем координату Х для указателя
Text 0,28,"Y handle-" + ImageYHandle(gfxBall) ; Печатаем координату Y для указателя
DrawImage gfxBall,200,200,0 ; рисуем картинку в позиции 200,200
Wend

; Очищаем экран
Cls

; выставляем координаты указателя равные координатам физ. центра изображения
MidHandle gfxBall

; Пока ненажат ESC ... показываем новую информацию
While Not KeyHit(1)
Text 0,0,"Новые координаты указателя gfxBall...Нажмите ESC ..."
Text 0,14,"X handle-" + ImageXHandle(gfxBall)
Text 0,28,"Y handle-" + ImageYHandle(gfxBall)
DrawImage gfxBall,200,200,0
Wend

; Разрешаем автоматическое центрирование указателя картинки
AutoMidHandle True
Cls

; Загружаем картинки снова
gfxBall=LoadImage ("C:\Program Files\Blitz Basic\samples\all.bmp")

; Пока не нажат ESC ... показываем новую информацию
While Not KeyHit(1)
Text 0,0,"Автоматически установленные внутренние координаты gfxBall... Нажмите ESC ..."
Text 0,14,"X handle-" + ImageXHandle(gfxBall)
Text 0,28,"Y handle-" + ImageYHandle(gfxBall)
DrawImage gfxBall,200,200,0

Wend

Другие

Друзья