Small Basic #2 GraphicsWindow

GraphicsWindow

GraphicsWindow (графическое окно) – элемент в Small Basic, предназначенный для создания растрового двухмерного изображения при помощи программного кода.

При помощи GraphicsWindow можно создавать игры, отображать графики, делать интересные визуальные эксперименты!)

Рассмотрим строение GraphicsWindow: начало отсчёта (координаты x и у) находится слева сверху. У GraphicsWindow есть ширина (width) и высота (height), которые мы будем задавать вначале программы.

В конспект

Пауза

Program.Delay(1000) 'Программа делает паузу в 1000 мс (1с)

Получить случайное число

number = Math.GetRandomNumber(1000)  'Выбирается случайное от 1 до 1000 и возвращается в переменную number

Бесконечный цикл (повторять всегда)

While "true"
  'Команды внутри цикла повторяются пока программу не остановят
EndWhile

Цикл с определённым количеством повтором (повторить n раз)

For i = 1 To 10
  'Команды внутри цикла повторяются 10 раз
EndFor

Try it out!

1. Вывод на экран незалитого эллипса, прямоугольника и залитого эллипса.
GraphicsWindow.DrawEllipse(20,20,100,100)
GraphicsWindow.DrawRectangle(140,20,100,100)
GraphicsWindow.BrushColor = "Blue" ' Изменяет цвет кисти
GraphicsWindow.FillEllipse(260,20,200,100)


2. Бесконечное изменение цвета фона на случайный с задержкой в 1 секунду

While "true"
  'Присвоим цвету фона случайный цвет
  GraphicsWindow.BackgroundColor = GraphicsWindow.GetRandomColor()
  'Делаем паузу в 1 с
  Program.Delay(1000)
EndWhile

3. Настройка параметров графического окна:
' Создадим переменные для хранения ширины и высоты экрана
width = 800
height = 600

' Дадим команды графическому окну принять ширину и высоту, заданную переменными
GraphicsWindow.Width = width
GraphicsWindow.Height = height

' Сделаем так, чтобы пользователь не мог изменять размеры окна
GraphicsWindow.CanResize = "false"
' Изменим заголовок графического окна

GraphicsWindow.Title = "Название программы"

Задачи

Задача 2.1*. Создайте графическое окно с шириной в 600 пикселей, высотой в 400 пикселей с чёрным цветом фона. Дайте возможность пользователю изменять размер окна. Добавьте название окна "Графика".
Задача 2.2**. Выведите своё имя на графическое окно (подсказка: используйте метод GraphicsWindow.DrawText). Увеличьте размер шрифта (свойство GraphicsWindow.FontSize). Сделайте так, чтобы это имя выводилось бесконечно разными цветами с интервалом в 300 мс. Для изменения цвета изменяйте свойство GraphicsWindow.BrushColor
Задача 2.3*. Выведите ровно в центре экрана эллипс размером 200х200рх. Программа должна работать для окон разного размера. Размеры задаются вначале программы таким образом:
width = 600
height = 400
Подумайте, как же расположить эллипс ровно в центре?

Задача 2.4*. Программа бесконечно меняет цвет фона и цвет заливки эллипса в центре экрана на случайный с задержкой в 300 мс.
Задача 2.5*. При помощи эллипсов создайте фигуру (не обязательно в центре экрана)

Задача 2.6**. Создайте анимационный проект "Светофор". Сначала отрисуйте светофор из прямоугольников и правильных эллипсов (тусклого цвета). Затем зациклите смену этих цветов на яркие с задержками.
Задача 2.7*. Заполните поле 400 овалами разного цвета (выбранного случайно) в случайной позиции.

Задача 2.8*. Исправьте код решения задачи 7 так, чтобы эллипсы не вылезали за края экрана справа и снизу.

Задача 2.9**. Заполните 1 ряд овалами диаметром 100рх случайного цвета. Подсказка: сначала напишите эту программу хардкодом, потом найдите закономерность и замените хардкод на цикл. Программа должна быть универсальна для любой ширины экрана.
Задача 2.10***. Дополните предыдущую программу, только заполнить нужно уже все ряды и диаметр эллипса задавать заранее, наряду с шириной и высотой экрана.


Комментарии

  1. Анонимный19.05.2021, 14:32

    нуууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууууу такое рвамрлорпоалпрыларплораолрполварпловпрлвоапрлоыраывлоаталотавлаытвытавттkjdlkfhsdjfhkdhfsхуdjkhjdsfkldjfksdfkldjksfskldjfdjfljfskldjflskjfldkjfsklfjdkfjskldfj2434234jkljlkdfdjkdldddddddddddddkdsjfdkljfsklkwejrlkejrklwrkelwrm

    ОтветитьУдалить

Отправить комментарий