View (Графика)
 
Устанавливает новые физические преобразования координат и область отсечения

Синтаксис

View
View ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]
View Screen ( x1, y1 )-( x2, y2 ) [ [, fill_color ] [, border_color ] ]

Параметры

x1 As Integer, y1 As Integer
Горизонтальное и вертикальное смещение в пикселях одного угла окна просмотра относительно верхнего левого угла экрана.
x2 As Integer, y2 As Integer
Горизонтальное и вертикальное смещение в пикселях противоположного угла окна просмотра относительно верхнего левого угла экрана.
fill_color As UInteger
Цвет для заполнения нового видимого экрана.
border_color As UInteger
Цвет границы вокруг нового видимого экрана.

Описание

Область просмотра, или область отсечения, представляет собой прямоугольную область графического экрана, вне которой рисунок не будет нарисован. То есть, только опираясь на данную область, будет воспроизводится графика. Графический экран должен быть создан с помощью Screen или ScreenRes перед вызовом View или View Screen.

Первый оператор устанавливает область просмотра для охвата всего экрана, который является окном просмотра по умолчанию для нового графического экрана.

Второе и третье заявления позволяют определять новую область просмотра. Углы видимой области задаются с помощью параметров x1, y1, x2 и y2. fill_color и border_color имеют формат, принятый Color. Указанные эффекты для каждого параметра происходят, только если этот параметр задан.

Вторая инструкция изменяет координаты отображения графики на экране таким образом, чтобы координаты, указанные для рисования и процедуры были по отношению к верхнему левому углу видимого окна.

Третья инструкция изменяет координаты отображения графики на экране таким образом, чтобы координаты, указанные для рисования и процедуры были по отношению к верхнему левому углу  экрана.

Пример

Screen 12
Dim ip As Any Ptr
Dim As Integer x, y

'простой спрайт
ip = ImageCreate(64,64)
For y = 0 To 63
  For x = 0 To 63
    PSet ip, (x, y), (x\4) Xor (y\4)
  Next x
Next y

'видимая область с синим бордюром
Line (215,135)-(425,345), 1, bf
View (220,140)-(420,340)

'Перемещение спрайт вокруг видимой области
Do

  x = 100*Sin(Timer*2.0)+50
  y = 100*Sin(Timer*2.7)+50
  
  ScreenSync
  ScreenLock
  
  'очистить видимую область и поместить изображение
  Cls 1
  Put (x, y), ip, PSet
    
  ScreenUnlock

Loop While Inkey = ""

ImageDestroy(ip)


Отличие от QB

  • QBASIC сохраняет координаты WINDOW маппинга после последующих вызовов VIEW.
  • Текущим поведением freebasic является сохранение WINDOW координат после вызова VIEW, или при работе с изображениями. Это означает, что отображение координат может пройти масштабирование/трансляцию, если изменяется видимая область. (Если WINDOW не был установлен, то нет координат маппинга, и поэтому они не меняются после вызовов VIEW.) Поведение может измениться в будущем, но совместимость будет гарантирована.

См. также