понедельник, 20 апреля 2015 г.

суббота, 18 апреля 2015 г.

Графический модуль и циклы



  1. Нарисовать N вложенных друг в друга кругов. Радиус самого большого круга - R1, радиус самого маленького - R2. Значения N, R1, R2 вводят с клавиатуры.
  2. Нарисовать N вложенных друг в друга квадратов. Сторона самого большого квадрата - R1, сторона самого маленького - R2. Значения N, R1, R2 вводят с клавиатуры.
  3. Замостить квадратное окно разноцветными квадратами размеров RxR пикселей каждый. Разместить в окне NxN квадратов. Значения N и R вводят с клавиатуры.
  4. Нарисовать шахматную доску с размером клетки NxN
  5. Нарисовать график функции y = sin (x). Масштаб преобразования функции по осям  x и y вводят с клавиатуры

Домашнее задание:

Нарисовать N вложенных друг в друга эллипсов. Размер самого большого эллипса - AxB пикселей, размер самого маленького - в N раз меньше. Значения N, A, B вводят с клавиатуры.

Зачетная работа по теме "Графический модуль" для 9В

Требования к работе:


  1. Придуманный рисунок должен содержать циклические конструкции (повторяющиеся элементы, концентрические круги, ромбы и т.д.) Прорисовка этих элементов должна осуществляться с помощью циклов.
  2. Рисунок должен иметь как минимум один настраиваемый элемент, задаваемый пользователем. (вводить с клавиатуры координаты объекта, или его размер, или цвет)
  3. Ссылку на рисунок и на программный код разместить в таблице:
    ссылка для группы 9В-1>>  
    ссылка для группы 9В-2>> 

пятница, 17 апреля 2015 г.

Проект для 10Д "Математически точный супрематизм"


  1. В альбоме "Супрематизим" >> отмечаете выбранную картину:  в комментарии необходимо указать свою фамилию, имя и номер группы.
  2. Во втором комментарии указать, кто является автором картины, ее название  год создания.
  3. На выбор:  в Desmos или в Pascal создать максимально близкую копию этой картины.
  4.  В третьем комментарии к картине разместить ссылку на апплет Desmos или ссылку на файл с кодом на Pascal.
  5. Подготовить краткий реферат о художнике и картине. Образец оформления >>



пятница, 10 апреля 2015 г.

Рисуем в Pascal. Маленькие фокусы

Разница между командами Circle, FillCircle, DrawCircle


uses GraphABC;
begin
    Window.SetSize(500, 250);
    Pen.SetWidth(4);
    Pen.SetColor(clRed);
    Brush.SetColor(clBlue);
    DrawCircle(100, 100, 60); //рисует окружность
    Circle(250, 100, 60); //рисует круг
    FillCircle(400, 100, 60); // закрашивает внутреннюю часть круга
end.

Пример работы с SetPixel

 
uses    GraphABC; 
var    x, y: integer; 
begin
    Window.SetSize(256, 256); //Задаем размер окна
    //Проходим по всем точкам окна и закрашиваем их     
    for x := 0 to 255 do
        for y := 0 to 255 do
            setpixel(x, y, rgb(x, 150, y)); 
end.
Команда setpixel(x, y, rgb(x, 150, y)); позволяет задавать цвет каждого пикселя в зависимости от его позиции на экране.

Попробуйте заменить строчку setpixel(x, y, rgb(x, 150, y)); на :setpixel(x, y, rgb(x, y, x+y)); setpixel(x, y, rgb(x, y, x*y));

Простая анимация с помощью sleep. Рисуем луну



uses GraphABC;
var x: integer;
begin
    Window.SetSize(800, 600);
    Window.Clear(clDarkBlue);
    LockDrawing;
    for x := 550 downto 150 do
    begin
        Brush.SetColor(clGold); // рисуем диск Луны
        FillCircle(400, 200, 100);
        Brush.SetColor(clDarkBlue); // рисуем темно-синюю тень
        FillCircle(x, 200, 100);
        Redraw;
        sleep(10); // задержка в 10 милисекунд
    end;
end.

Команда sleep(10)  создает задержку в 10 милисекунд.
Команды LockDrawing и Redraw обеспечивают анимацию без "мерцания"

Попробуйте убрать команды LockDrawing и Redraw из программы. Посмотрите, что получилось?

Материалы к зачету по теме “Основы программирования в Pascal”