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

Вход на сайт

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

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

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

Пример, к которому вы оставили комментарий строит именно то самое изображение на языке с#, которое вам необходимо. Отличается только цветовая палитра.
Добрый день! Уже и не знаю куда обратиться. Нужно построить фрактал Жулиа на языке программирования C#. Что бы получилось данное изображение
Необходимо дополнение, как все это запустить, Где писать все эти команды, чтобы видеть результат. Я имею ввиду, что необходимо продемонстрировать полный код HTML-страницы со скриптом и тегами холста. Может даже сделать Урок 0 "Как начать рисовать в...
КРУГОВОЙ ФРАКТАЛ -ОШИБОЧНАЯ ПРОГРАММА! ПАПА ЗибЕрт
Можешь обяснить подробно что как работает, и почему массу не задаем

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

Яндекс.Метрика Рейтинг@Mail.ru
Скриншот к примеру
Среда программирования: 
Lazarus 1.2.4

Задача: зарисовать (заполнить) окружность, зная координаты её центра и радиус.
Суть алгоритма: используя свойства вписанной в квадрата окружности, можно утверждать, что все точки окружности и круга, ограниченного этой окружностью, лежат в квадрате,описанном вокруг данной окружности. Перебирая все точки двойным циклом (по OX и OY) и проверяя их удовлетворение неравенству (X-текущийX)2+(Y-текущийY)2≤Радиус2 строится сама окружность и эта же окружность заполняется

Код программы: 

unit Unit1;
 
{$mode objfpc}{$H+}
 
interface
 
uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
  StdCtrls, ActnList, ColorBox, Math; //Используем бибилотеку Math для  функции intpower()
 
type
 
  { TForm1 }
 
  TForm1 = class(TForm)
    Button1: TButton;
    ColorBox1: TColorBox;      //Выбор цветов осуществляется из панели Color
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    PaintBox1: TPaintBox;
    procedure Button1Click(Sender: TObject);  //Обрабатываемое событие нажатия на кнопку Draw
  private
    { private declarations }
  public
    { public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.lfm}
 
 
{ TForm1 }
procedure FillCircle(X,Y,Radius: Integer; color: Tcolor);     //Функция заполнения
var curX, curY : Integer;  //текущие значения Х и У,которые проверяются в уравнении окружности
begin
  for curX:=X-Radius to X+Radius do  //двигаемся от левой стороны описанного квадрата до правой по OX
      begin
        for curY:=Y-Radius to Y+Radius do  //двигаемся  от верхней стороны описанного квадрата до нижней по OY
            begin
              if ((intpower(X-curX,2)+intpower(Y-curY,2) <= intpower(Radius,2)) and (Form1.PaintBox1.Canvas.Pixels[curX, curY] <> color)) then  // Пиксель нового цвета будет поставлен если текущая точка (curX,curY) лежит в или на окружности и цвет не совпадает с новым
                 Form1.PaintBox1.Canvas.Pixels[curX,curY]:=color;
            end;
      end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
  FillCircle(StrToInt(Edit1.Text), StrToInt(Edit2.Text), StrToInt(Edit3.Text), ColorBox1.Selected);
end;
 
 
end.

Прикрепленный файлРазмер
konsmanov_1_circle_example.zip279.89 кб