Как сделать овал в бейсике

Обновлено: 05.07.2024

Итак, основные навыки для написания эмулятора телефона мы получили, самое время вернуться к нашей давно нарисованной оболочке. Давайте посмотрим, как работать с графическими элементами в Small basic.

Программа Small Basic формирует графику на поверхности графического окна (Graphics Window). Для того чтобы графическое окно появилось на экране и внутри него был нарисован, например, прямоугольник, в программу надо поместить инструкцию вызова метода, рисующего прямоугольник. Так в результате выполнения инструкции

будет нарисован прямоугольник шириной в 50 и высотой в 30 пикселей, левый верхний угол которого будет находиться в точке с координатами (10, 10).

Методы, рисующие графические примитивы внутри графического окна, рассматривают его поверхность как холст, состоящий из отдельных точек — пикселов. Положение пиксела характеризуется его горизонтальной (x) и вертикальной (y) координатами. Координаты отсчитываются от левого верхнего угла и возрастают слева направо (x) и сверху вниз (y). Точка, находящаяся в левом верхнем углу поверхности, имеет координаты (0, 0).

Свойства графического окна GraphicsWindow (табл. 8.1) определяют вид графических примитивов, рисуемых на графической поверхности соответствующими методами. Так, например, свойство PenColor (Цвет пера) задает цвет линий и границ фигур, а свойство BrushColor (Цвет кисти) — цвет закраски областей.

PenColor Задает цвет линий и границ геометрических фигур

PenWidth Задает толщину линий и границ геометрических фигур, рисуемых пером

BrushColor Задает цвет закраски внутренних областей геометрических фигур

FontName Задает шрифт, используемый для вывода текста на графическую поверхность

FontSize Задает размер шрифта, используемого для вывода текста на графическую поверхность

FontItalic Устанавливает, что шрифт, используемый для вывода текста на графическую поверхность, должен быть курсивный (italic)

FontBold Устанавливает, что шрифт, используемый для вывода текста на графическую поверхность, должен быть полужирным (bold)

Width Ширина окна

Height Высота окна

CanResize Устанавливает вид границы окна. Если свойству присвоить значение False, то граница станет тонкой, поэтому у пользователя не будет возможности изменить размер окна

Цвет линий и областей задается путем изменения соответственно значений свойств PenWidth и PenColor. В качестве значения свойства, определяющего цвет, следует использовать название цвета, например, "Red", "DarkRed", "Green", "YellowGreen", "Gold", "SkyBlue". Всего в Small Basic определены 142 цвета.

Нажмите, чтобы узнать подробности

Содержит материалы в рамках ФГОС к уроку информатики в 5 классе, является продолжением изучения темы "Разнообразие задач обработки информации": программирование как изменение формы представления информации. Урок открытия нового знания по технологии деятельностного метода

Муниципальное бюджетное общеобразовательное учреждение

Методическая разработка

Команда программирования эллипса в Бейсике.

Урок введения нового знания по технологии деятельностного метода.

Учитель информатики

Антонина Александровна Белоусова

ЗАТО г. Железногорск

Команда программирования эллипса в Бейсике.

Урок введения нового знания по технологии деятельностного метода.

Общая организационная информация к уроку приведена в Приложении 1.

Основные цели:

Формирование способностей к основным видам деятельности

Усвоение содержания учебной программы: изучить команду программирования эллипса в Бейсике

Домашнее задание к уроку: Составить список знакомых команд программирования графики в Бейсике

Задачи урока:

изучить виды эллипсов

научить выбору параметров в команде (радиуса, цвета контура, коэффициента сжатия) для различных видов эллипса

научить использовать команду в программе для создания заданного рисунка

развивать познавательный интерес, аналитический способ мышления

воспитать интерес к предмету, аккуратность, внимательность, дисциплинированность при работе на ПК

Форма организации образовательного пространства на уроке:

индивидуальная практическая работа на ПК

Структура урока

Актуализация знаний и фиксация затруднения в деятельности

Постановка учебной задачи

Построение проекта выхода из затруднения (открытие учениками нового знания)

Первичное закрепление во внешней речи

Самостоятельная работа с самопроверкой

Включение в систему знаний и повторение

Рефлексия деятельности (итог урока)

Приветствие учеников и учителя. Фиксирование учителем в журнале отсутствующих. Визуальная проверка домашнего задания. Доброжелательное отношение учителя организует положительное самоопределение ученика к деятельности на уроке, стимулирует мотивацию к учебной деятельности.

Актуализация знаний и фиксация затруднения в деятельности

Этап предполагает подготовку мышления учеников к проектировочной деятельности, тренировку соответствующих мыслительных операций. Учитель выводит на экран изученные ранее команды:

Line (x1, y1) – (x2, y2), c

Line (x1, y1) – (x3, y3), c, bf

Ученики называют их, перечисляют входящие параметры.

Далее на экране ученики видят рисунки.




Перечисляют, какие команды нужны для их создания.

На экране рисунок 2.4,


где изображена рыбка из эллипсов с горизонтальной большой осью. Фиксируется затруднение.

Постановка учебной задачи

Построение проекта выхода из затруднения (открытие учениками нового знания)

Учитель организует коммуникативную деятельность учеников по исследованию возникшей проблемной ситуации.

На экране рисунок 4.1, на котором изображены грибы, где у одного ножка, а у другого шляпка – эллипсы с вертикальной большой осью.


Ученики фиксируют, что могут быть эллипсы разных видов. Как получить эллипс?

прижимает обруч сверху – получает форму эллипса с горизонтальной осью;

прижимает руками с боков - получает форму эллипса с вертикальной осью.

Учитель организует коллективную деятельность учеников в форме мозгового штурма.

Вывод: эллипс - это сжатая окружность. Команда эллипса может быть получена из команды окружности.

Какие параметры задать? Окружность характеризуется координатами центра, размером радиуса и цветом контура. Для эллипса тоже необходимо задать центр на плоскости, большую полуось вместо радиуса, цвет контура и каким-то образом направление сжатия. Эти параметры фиксируются на рисунке 4.2. По аналогии с командой окружности составляется новая команда для эллипса:


Учитель поясняет ее структуру, вводя новый параметр – коэффициент сжатия k. Между запятыми задаются параметры для дуг. Их пока не используем, берем нулевые значения. Учитель объясняет, какие значения коэффициент сжатия принимает для разных видов эллипса:


если k1 – эллипс с вертикальной большой осью (Рисунок 4.4).


Чем ближе к единице значение k, тем эллипс круглее; чем дальше значение k от единицы, тем эллипс тоньше (может превратиться в отрезок).

Таким образом, учебная задача разрешена.

Первичное закрепление во внешней речи

На экран выводятся несколько эллипсов, различных по размерам, направлению и толщине. Ученики комментируют задание параметров. Вопросы:

если коэффициент сжатия равен 1(задать учителю, если не найдется очень любопытного ученика)? Получим окружность

как раскрасить эллипс? Очевидно, так же как окружность, ведь это тоже замкнутая область.

найдите ошибки в записи команды (вывести 3 - 4 неверные команды):

Cirkle (100,200),50,1. 0.5

Circle (100,200),50,2. 0,5

Circle (100,200),50. 0.5

Оценивание работы учеников – устное поощрение учителем.

Самостоятельная работа с самопроверкой

Индивидуальная практическая работа на ПК. Раздать ученикам текстовое задание (Приложение 2). Внимательно прочитав, ученик находит свою тему и подбирает к ней рисунок для разработки программы, получает оценочный лист (Приложения 3 - 5). На рисунке есть лишние элементы, которые программировать не нужно, согласно описанию в тексте (смысловое понятие текста).

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

Включение в систему знаний и повторение

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

Рефлексия деятельности (итог урока)

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

Методическая разработка успешно апробирована в группах 5 класса в 2015 году

Приложение 1

Общая организационная информация

Команда программирования эллипса в Бейсике.

Класс, количество человек в группе

5 А класс, группа 13 человек

Время реализации урока

Планируемые образовательные результаты

- умеют загружать среду программирования

-умеют задавать параметры в команде для видов эллипса, различных по величине и направлению.

- умеют закрашивать эллипсы.

- умеют разрабатывать программу из команд Бейсика для создания заданных картинок

-умеют преобразовать пространственно-графическую информацию в знаково – символическую, используя координаты

-умеют выбирать соответствующие форме команды графических примитивов в зависимости от поставленной задачи

-умеют сопоставить команду со смысловым значением на русском и английских языках

-заинтересованность ученика, положительное отношение к учению (психологический настрой)

- аккуратность, внимательность, дисциплинированность при работе на ПК

УДД, которые актуализируют/приобретут/закрепят обучающие в ходе урока

-оценивание качества своей учебной деятельности.

- планирование учебного сотрудничества с учителем, сверстниками

-сотрудничество со средой программирования

-классификация объектов по выбранному признаку

-умение отличать в тексте главное и второстепенное, соотносить описание с рисунком, делать выбор

Ресурсы, оборудование и материалы

Используемые на уроке средства ИКТ:

Персональный компьютер (ПК) учителя

Интерактивная доска или экран

Среда программирования QBASIC

Список учебной и дополнительной литературы

Дидактическое обеспечение урока

Карточки с текстовым заданием

Карточки с графическим заданием

Практическое задание

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

Анжела, Полина, Алина, Ярик заметили в парке Лесовичка. Голова как шишка, лысая, только с ушками, глазки, ротик круглые, а нос лепешкой. Такой толстячок с лапками!

А Настя, Алик и Вадим и оба Влада гуляли по берегу озера и увидали лягушку. Сидит зеленая на камушке, квакает в одиночестве, а вокруг только вода, ни травинки-камышинки!

Вот свои находки и должны ребята изобразить на экране, согласно этому описанию и соответствующей картинки

Microsoft Logo

Gray Pipe

Приносим извинения. Запрошенное содержимое было удалено. Вы будете автоматически перенаправлены через 1 секунду.

Лучший отвечающий

Вопрос

при создание программы столкнулся с проблемой, как построить эллипс под углом ? Можно ли вообще построить эллипс под углом ? Если да, то как ?

Ответы

Да, можно, с помощью мировых преобразований (название из WinAPI). Вот пример:

p.s. Возможно, коряво код вставился. редактировал "по ходу" :)

Все ответы

Вот посмотрите две темы, надеюсь будут полезны:

Пожалуй следует начать с масштабов. Масштаб определяется свойством ScaleMode Реальное значение масштаба - пиксели (vbPixels). Каждый пиксель соответствуем реальной точке на экране. Но почему то по умолчанию в VB принят масштаб в твипах (vbTwips). Один пиксел соответствуем 15 твипам. Обрабатывать графику в таком масштабе неудобно, так как при рисовании 15 точек на экране реально появится только одна. Существуют также следующие масштабы
vbPoints -0,75 пикселя;
vbCharacters - содержит 120 твипов по горизонтали и 240 по вертикали;
vbInchs - 96 пикселей;
vbMillimeters и vbCentimeters соответственно 3,8 и 38 пикселей. Эти масштабы соответствуют реальному миллиметру и сантиметру при выводе изображения на принтер.
Также Вы можете определить свой масштаб. Произвольный масштаб задается свойствами ScaleLeft, ScaleTop, ScaleWidth, ScaleHeight или методом Scale. При изменении этих свойств свойство ScaleMode автоматически примет значение vbUser. Произвольный масштаб может быть удобен например для рисования графиков. Например, чтобы нарисовать синусоиду, можно ввести масштаб от -6.28 до 6.28 по оси x, от -1 до 1 по оси y:
Теперь рассмотрим методы вывода графики (все необязательные параметры помещены в скобки []):
Метод PSet [Step] (x, y), [color] рисует точку с заданными координатами.
Может использоваться следующим образом:
Pset (x, y), color - рисует точку с координатами x,y и цветом color.
PSet Step(x, y) - рисует точку, расположенную от предыдущей на расстояние x по горизонтали и y по вертикали. Например
Метод Line [Step] (x1, y1) [Step] (x2, y2), [color], [B][F] рисует линию или прямоугольник с заданными координатами
Может использоваться следующим образом:
Line (x1, y1) - (x2, y2), color - рисует линию, с координатами вершин (x1, y1) и (x2, y2) и цветом color;
Line Step (x1, y1) - (x2,y2) - рисует линию, где x1, y1 - расстояние от предыдущей точки;
Line (x1, y1) - Step (x2, y2) - рисует линию из точки (x1, y1) в точку, отстоящую от нее на расстояние x2, y2;
Line - (x, y) - рисует линию из предыдущей точки в точку с координатами (x, y);
Line (x1, y1) - (x2, y2), , B - рисует прямоугольник;
Line (x1, y1) - (x2, y2), , BF - рисует прямоугольник закрашенный цветом линий. Например Метод Circle [Step] (x, y), radius, [color, start, end, aspect] рисует окружность, дугу или эллипс
x, y - координаты центра;
radius - радиус окружности;
color - цвет окружности;
start, end - начало и конец дуги в радианах (по умолчанию start=0, end=6.28);
aspect определяет степень сжатия эллипса. По умолчанию aspect=1. Если aspect>1, эллипс будет вытянут по вертикали, если aspect Для вывода текста существует метод Print. Положение текста определяется свойствами CurrentX и CurrentY. Например Теперь рассмотрим цвета. Цвет состоит из трех составляющих - красная, зеленая и синяя. Каждая составляющая может изменяться от 0 до 255. Цвет кодируется следующим образом
red + 256*green + 65536*blue
Эту запись позволяет упростить функция RGB(red, green, blue).
Например желтый цвет=RGB(255, 255, 0).
В идеальном случае можно вывести 256^3=16777216 цветов (24 бита). В реальном случае количество цветов зависит от экранных настроек.
Помимо этой функции есть функция QBColor(color), где color = 0-15, которая возвращает 16 наиболее часто используемых цветов.
Также цвет можно задать предопределенными константами (vbBlack, vbRed, vbGreen, vbYellow, vbBlue, vbMagenta, vbCyan, vbWhite).
Разложить цвет на составляющие можно следующим образом:
Red = Color And 255
Green = Color \ 256 And 255
Blue = Color \ 65536 And 255
Помимо обычных цветов существуют системные цвета т.е. цвета, установленные по умолчанию системой для кнопок, текстовых полей и т.д. Чтобы не спутать эти цвета с обычными они кодируются отрицательными числами. Чтобы получить коды этих цветов используйте предопределенные константы (например vbButtonFace).
Чтобы получить цвет точки используйте функцию Point(x, y).
Цвет фона графического окна определяется свойством BackColor. Цвет линий - свойством ForeColor. Цвет, заданный этим свойством является по умолчанию для графических методов. Например
Толщина линий определяется свойством DrawWidth.
В VB5 есть одна ошибка - если DrawWidth = 1, то метод Pset, если в нем не задать цвет, выведет точку черным цветом независимо от свойства ForeColor.
Свойство DrawStyle определяет тип линии. Например vbDot - пунктирная.
Свойство DrawMode определяет способ наложения линии на картинку. Например vbMaskPen соответствует And, vbInvert - Xor. По умолчанию это свойство равно vbCopyPen т.е. линия рисуется в том виде, в каком она есть. Рассмотрим 2 примера:
Пример 1:
Скопируйте код. Запустите программу. Щелкните мышкой по форме и не отпуская кнопки мыши перемещайте ее по форме.
Пример 2. Теперь рассмотрим заливку. Тип и цвет заливки определяются свойствами FillStyle и FillColor. По умолчанию Fillstyle = 1 и заливки нет. Если FillStyle = 0, то фигура закрашивается полностью цветом FillColor. Например Свойство AutoRedraw определяет будет ли сохраняться изображение при перерисовке. Если AutoRedraw = False, и в графическом окошке что-то нарисовано, то когда это окошко скроется из видимости (например на какое-то время над ним появится другая форма или когда свойство Visible = False), то изображение стирается. При AutoRedraw = True изображение остается в любом случае, но скорость работы с графикой снижается. При этом изображение вначале обрабатывается в памяти, а затем выводится на экран. Например поместите на форму кнопку и введите следующий код: Если AutoRedraw = False, то Вы увидите, как постепенно заполняется экран точками. Если AutoRedraw = True, то после некоторой паузы компьютер выведет готовый результат.
Свойства Picture и Image
Свойство Picture определяет картинку, помещенную в графическое окно. Например картинку, загруженную из файла. Оно содержит информацию о ее размере, палитре, формате (bmp, jpeg, gif). Свойство Image определяет изображение графического окна. т.е. все, что нарисовано в графическом окне. Все графические функции работают именно с изображением, а Picture остается неизменным. Например
В данном примере до очистки картинки в Picture хранилась одна линия, а в Image - линия с окружностью. После очистки нетронутым осталась одна линия так как она храниться в Picture, а окружность стерлась. Теперь давайте рассмотрим как перенести изображение из одного графического окошка в другое. За основу возьмем предыдущий пример: Теперь рассмотрим метод PaintPicture. Этот метод позволяет копировать с выбранным масштабом изображение с одного графического окошка на другое.
PaintPicture picture, x1, y1, [width1], [height1], [x2], [y2], [width2], [height2], [opcode]
Picture - картинка, которую мы копируем;
x1, y1 - левый верхний угол картинки на окошке-приемнике;
width1, height1 - размеры картинки на окошке-приемнике;
x2, y2 - левый верхний угол картинки на окошке-источнике;
width2, height2 - размеры картинки на окошке-источнике;
opcode определяет способ копирования (например просто копирование vbSrcCopy; побитовое умножение vbSrcAnd; побитовое сложение vbSrcPaint)
Если размеры width1 и width2 или height1 и height2 отличаются, то размер картинки изменяется
Пример:
Ну и наконец открытие, сохранение картинки и работа с буфером
Записываем картинку в файл Считываем картинку из файла Записываем картинку в буфер Считываем картинку из буфера

Читайте также: