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
|