Уроки, алгоритмы, программы, примеры

Вход на сайт

Материалы по разделам

Построения
на плоскости (2D)
Графика
в пространстве (3D)
Вычислительная
геометрия
Физическое
моделирование
Фрактальная
графика

Новые комментарии

Здравствуйте, Ильгиз. Математика - царица наук (Карл Гаусс). Изучение математики начинается с детского сада, когда нас учат считать и выполнять простые арифметические операции. Любой, даже самый простейший алгоритм будет связан с арифметическими...
Я хотел узнать математика это обязательно в программирование. Пять лет назад просто из любопытства я увлекся HTML потом изучил CSS и JvaScript потом изучил PHP и Java. Как то не задумывался и начал смотреть форумы и узнал что без математики не...
Все верно, но так же необходимо зайти в: Компоновщик -> Ввод -> Дополнительные зависимости Здесь необходимо нажать изменить и в Дополнительные зависимости прописать это: SDL2.lib SDL2main.lib SDL2test.lib Без этого не заработает. (MVS 2015)
Спасибо за реализацию, она действительно быстрая. Но не все линии отрисовывает в нужную сторону... Необходимо добавить проверку для случая X-линии if(y1 "<" y0) grad=-grad; и аналогично для Y-линии if(x1 "<" x0) grad=-grad; P.S. На...
Отличные уроки(учу GL по ним), только в renderScene нужно добавить очистку буфера цвета и буфера глубины. При изменении размеров треугольники размножаются)

Счетчики и рейтинг

Яндекс.Метрика Рейтинг@Mail.ru
Язык программирования: 
Pascal
Среда программирования: 
Lazarus 1.2.6

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls;
 
type
 
  { TForm1 }
 
   TForm1 = class(TForm)
    Button1: TButton;
    PaintBox1: TPaintBox;
    Timer1: TTimer;
    procedure Button1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { private declarations }
     x1, y1, r1, r2, c: Integer;
 
  public
    { public declarations }
 
    procedure Round (x, y, w, z: Integer);
    procedure Round2 (x, y, w, z: Integer);
  end;
 
var
  Form1: TForm1;
  i,j, save1, save2: Integer;
 
 
implementation
 
{$R *.lfm}
 
{ TForm1 }
    procedure TForm1.Round (x, y, w, z: Integer);
begin
  with PaintBox1.Canvas do begin
  //Красный
  // Pen.Style := psClear;
   Pen.Color := clRed;
   Brush.Color := clRed;
   Ellipse (x-15,y-15,w+15,z+15);
   Ellipse (x,y+15,w+30,z+45);
    end;
  end;
 
   procedure TForm1.Round2 (x, y, w, z: Integer);
begin
  with PaintBox1.Canvas do begin
  //Чёрный
  // Pen.Style := psClear;
   Pen.Color := clBlack;
   Brush.Color := clBlack;
   Ellipse (x,y,w+30,z+30);
   Ellipse (x-15,y+30,w+15,z+60);
  end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  // установка начальных значений
  x1:=0;
  y1:=0;
  c:=1;
  r1:=15;
  r2:=0;
  Timer1.Interval:=200;
 
  //фон
  PaintBox1.Canvas.Brush.Color := clWhite;
  PaintBox1.Canvas.Rectangle(0,0, 400, 400);
 
  // Включение таймера - запуск анимации
  Timer1.Enabled := true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
 
  // Закраска объекта
  PaintBox1.Canvas.Brush.Color := clWhite;
  PaintBox1.Canvas.Rectangle(0,0, 400, 400);
 
  // Изменение радиуса кружков
    Case c of
      	1:  begin
          r1:=r1-3;
          r2:=r2+3;
        if r1=0 then c:=2;
        end;
        2: begin
          r1:=r1+3;
          r2:=r2-3;
        if r1=15 then c:=1;
        end;
        end;
 
        // Прорисовка кружков с новым радиусом
  save1:=x1;
  save2:=y1;
     x1:=x1-30;
     for i:=0 to 15 do
     begin
         x1:=x1+30;
         y1:=y1-60;
      for j:=0 to 10 do
      begin
      y1:=y1+60;
      Round(x1+r1,y1+r1,x1-r1,y1-r1);
      Round2(x1+r2,y1+r2,x1-r2,y1-r2);
     end;
      y1:=save2;
       end;
      x1:=save1;
end;
 
end.               

Прикрепленный файлРазмер
Red and Black.rar2.51 кб