Кривая Гильберта - Фракталы - Программирование - Каталог статей - Учись! Slider en CSS3 et JS

^
Категории раздела
случайная задача
[11.04.2015][ЕГЭ (П)]
В правильной треугольной пирамиде SABC точка М — середина ребра ВС, S — вершина. Известно, что АВ = 6, а площадь боковой поверхности равна 4 (0)
[19.09.2015][ЕГЭ (П)]
В классе учится 30 человек, из них 20 человек посещают кружок по биологии, а 16 человек — кружок по географии. Выберите утверждения, которы (0)
[11.02.2016][ОГЭ]
Укажите решение неравенства 3-2х>8х-1. (0)
[24.09.2015][ОГЭ]
Высота АН ромба ABCD делит сторону CD на отрезки DH — 8 и СН = 2. Найдите высоту ромба (0)
[14.10.2015][ОГЭ]
Решите уравнение (х-6)(4х-6) = 0.Если уравнение имеет более одного корня, в ответ запишите меньший из корней. (0)
[24.01.2016][ОГЭ]
Какие из следующих утверждений верны? 1)Один из углов треугольника всегда не пре-вышает 60 градусов. 2)Средняя линия трапеции равна сумм (0)
[01.11.2015][ОГЭ]
На диаграмме показано содержание питательных веществ в какао, молочном шоколаде, творожных сырках и сгущённом молоке. Определите по диаг (0)
[17.08.2013][Pascal, Delphi, Lazarus]
Lazarus. Решение квадратного уравнения. (0)
Реклама
Статистика
Яндекс.Метрика


Онлайн всего: 6
Гостей: 6
Пользователей: 0

копирайт
Copyright Игорь Ret-Ar Матыцин © 2017
 
поделиться
Мы Вконтакте
Google+
реклама
Свидетельство
Вход на сайт
Популярное
[14.10.2015][ОГЭ]
Площадь четырёхугольника можно вычислить по формуле s=d1*d2*sin a/2 , где d1 и d2 — длины диагоналей четырехугольника, а —угол между диа (0)
[21.12.2014][ЕГЭ (П)]
Диагональ правильной четырёхугольной призмы наклонена к плоскости основания под углом 30°. Боковое ребро равно 3. Найдите диагональ призмы. (0)
[21.12.2014][ЕГЭ (П)]
В случайном эксперименте симметричную монету бросают триж¬ды. Найдите вероятность того, что решка выпадет все три раза (0)
[15.04.2015][ЕГЭ (П)]
В прямоугольном параллелепипеде ABCDA1B1C1D1 известны длины рёбер: АВ = 3, AD = 4, АА1 = 32. Найдите площадь сечения, про¬ходящего через вер (0)
[21.12.2014][ЕГЭ (П)]
Корень(9 - 4*корень(5)) - корень(5) или √9-4√5-√5 (0)
[21.12.2014][ЕГЭ (П)]
В кубе ABCDA1B1C1D1 точки Е, F, Е1 и F1 являются серединами рёбер ВС, DC, B1C1 и D1C1 соответственно. Объём призмы, отсекаемой от куба плоск (0)
[15.04.2015][ЕГЭ (П)]
13. Первый сплав содержит 5% меди, второй — 11% меди. Масса второго сплава больше массы первого на 4 кг. Из этих двух спла¬вов получили трет (0)
[14.10.2015][ОГЭ]
После уценки телевизора его новая цена составила 0,57 старой. На сколько процентов уменьшилась цена телевизора в результате уценки? (0)
[14.10.2015][ОГЭ]
10. Отрезки АС и BD — диаметры окружности с центром О. Угол АСВ равен 78° . Найдите угол AOD. Ответ дайте в градусах (0)
[01.11.2015][ОГЭ]
Два катета прямоугольного треугольника равны 17 и 4. Найдите его площадь (2)
ГДЗ
Главная » Статьи » Программирование » Фракталы

Кривая Гильберта

 

 
 
var
 
  p: integer; // порядок кривой
 
  u: integer; // длина штриха
 
  { Кривую Гильберта можно получить путем
 
  соединения элементов а,b,с и d.
 
  Каждый элемент строит
 
  соответствующая процедура. }
 
procedure a(i: integer; canvas: TCanvas); forward;
procedure b(i: integer; canvas: TCanvas); forward;
procedure c(i: integer; canvas: TCanvas); forward;
procedure d(i: integer; canvas: TCanvas); forward;
 
  // Элементы кривой
   procedure b(i: integer; canvas: TCanvas);
 
  begin
 
  if i > 0 then begin
 
  c(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X-u,canvas.PenPos.Y);
 
  b(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y-u);
 
  b(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X+u, canvas.PenPos.Y);
 
  d(i-1, canvas);
 
  end;
 
  end;
  procedure c(i: integer; canvas: TCanvas);
 
  begin
 
  if i > 0 then begin
 
  b(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y-u);
 
  c (i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X-u,canvas.PenPos.Y);
 
  c(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y+u);
 
  a(i-1, canvas);
 
  end;
 
  end;
 
  procedure d(i: integer; canvas: TCanvas);
 
  begin
 
  if i > 0 then begin
 
  a(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y+u);
 
  d(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X+u,canvas.PenPos. Y) ;
 
  d(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y-u);
 
  b(i-1, canvas);
 
  end;
 
  end;
 
 
 
 
  procedure a(i: integer; canvas: TCanvas);
 
  begin
 
  if i > 0 then begin
 
  d(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X+u,canvas.PenPos.Y);
 
  a(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X,canvas.PenPos.Y+u);
 
  a(i-1, canvas);
 
  canvas.LineTo(canvas.PenPos.X-u,canvas.PenPos.Y);
 
  c (i-1, canvas);
 
  end;
 
  end;               
 
u:=strtoint(edit62.Text);
 image28.Canvas.MoveTo(u, u) ;
 
a(strtoint(edit63.Text),image28.Canvas);
 
 
Категория: Фракталы | Добавил: Ret-Ar (03.01.2014)
Просмотров: 2009 | Рейтинг: 0.0/0