Файл:Sierpinski-Curve-2.png
Матеріал з testwiki
Перейти до навігації
Перейти до пошуку
Sierpinski-Curve-2.png (512 × 512 пікселів, розмір файлу: 2 КБ, MIME-тип: image/png)
Цей файл з Вікісховища і може використовуватися в інших проєктах. Далі наведена інформація з його сторінки опису.
| ОписSierpinski-Curve-2.png |
English: Sierpinski Curves (fractals) of orders 1 and 2. Drawn by a Java program I did myself. |
| Час створення | |
| Джерело | Власна робота |
| Автор | User:Nol Aders |
Pseudocode
points = [] // Array dels punts
max_order = 8 // Nombre d'ordres a avaluar
// Punts inicials
points <- Point.new(0, -1, :top) // Amunt
points <- Point.new(1, 0, :right) // Dreta
points <- Point.new(0, 1, :bottom) // Avall
points <- Point.new(-1, 0, :left) // Esquerra
// Crear cada ordre a partir dels punts de l'anterior
for order in 1..max_order
// Els punts actuals ja no surten al nou ordre
current = points.clone
points.clear
// La distància depèn de l'ordre
d = sd = 0.5 / (2 ** (order - 1))
// Crear punt nou a partir de cada punt de l'ordre anterior
for point in corrent
px = point.x
py = point.y
case point.type
when :top // Amunt
points <- Point.new(px - d - sd, py - sd, :top)
points <- Point.new(px - d, py, :right)
points <- Point.new(px + d, py, :left)
points <- Point.new(px + d + sd, py - sd, :top)
when :right // Dreta
points <- Point.new(px + sd, py - d - sd, :right)
points <- Point.new(px, py - d, :bottom)
points <- Point.new(px, py + d, :top)
points <- Point.new(px + sd, py + d + sd, :right)
when :bottom // Avall
points <- Point.new(px + d + sd, py + sd, :bottom)
points <- Point.new(px + d, py, :left)
points <- Point.new(px - d, py, :right)
points <- Point.new(px - d - sd, py + sd, :bottom)
when :left // Esquerra
points <- Point.new(px - sd, py + d + sd, :left)
points <- Point.new(px, py + d, :top)
points <- Point.new(px, py - d, :bottom)
points <- Point.new(px - sd, py - d - sd, :left)
end
end
end
Pascal src code
uses GraphABC;
procedure RLine(x, y, x1, y1: real) := Line(Round(x), Round(y), Round(x1), Round(y1));
function GetAngle(x, y, x2, y2: real): real;
begin
var angle := Abs(RadToDeg(ArcTan((y2 - y) / (x2 - x))));
if (x2 = x) and (y2 = y) then
Result := 0
else
if x2 > x then
if y2 > y then Result := angle else Result := 360 - angle
else
if y2 > y then Result := 180 - angle else Result := 180 + angle;
end;
procedure Draw(x, y, x1, y1: real; inverted: boolean);
begin
var angle := GetAngle(x, y, x1, y1);
var s := 1 - 2 * Ord(inverted);
var r := Sqrt(Sqr(x1 - x) + Sqr(y1 - y)) / 2;
var ang1 := DegToRad(angle - 60 * s);
var xA := x + r * Cos(ang1);
var yA := y + r * Sin(ang1);
var ang2 := DegToRad(angle - 120 * s);
var xB := x1 + r * Cos(ang2);
var yB := y1 + r * Sin(ang2);
if 2 * r < 8 then
begin
RLine(x, y, xA, yA);
RLine(xA, yA, xB, yB);
RLine(xB, yB, x1, y1);
end
else
begin
Draw(x, y, xA, yA, not inverted);
Draw(xA, yA, xB, yB, inverted);
Draw(xB, yB, x1, y1, not inverted);
end;
end;
begin
Draw(100, 100, 400, 450, false);
end.
Ця математична ілюстрація має бути конвертована у векторний формат SVG. Це дає декілька переваг, докладніше про які Ви можете прочитати на сторінці Commons:Media for cleanup. Якщо Вам вже зараз доступна векторна версія даного зображення, завантажте її, будь ласка. Після завантаження замініть цей шаблон на такий: {{vector version available|Назва_завантаженого_файлу.svg}}.
|
| Дозволяється копіювати, розповсюджувати та/або модифікувати цей документ на умовах ліцензії GNU FDL версії 1.2 або більш пізньої, виданої Фондом вільного програмного забезпечення, без незмінних розділів, без текстів, які розміщені на першій та останній обкладинці. Копія ліцензії знаходиться у розділі GNU Free Documentation License.http://www.gnu.org/copyleft/fdl.htmlGFDLGNU Free Documentation Licensetruetrue |
| Цей файл ліцензований на умовах ліцензії Creative Commons Attribution-Share Alike 3.0 Unported | ||
| ||
| Цей шаблон ліцензування був доданий до файлу в рамках оновлення ліцензії GFDL.http://creativecommons.org/licenses/by-sa/3.0/CC BY-SA 3.0Creative Commons Attribution-Share Alike 3.0truetrue |
Підписи
Додайте однорядкове пояснення, що саме репрезентує цей файл
Об'єкти, показані на цьому файлі
зображує
липень 2005
image/png
Історія файлу
Клацніть на дату/час, щоб переглянути, як тоді виглядав файл.
| Дата/час | Мініатюра | Розмір об'єкта | Користувач | Коментар | |
|---|---|---|---|---|---|
| поточний | 16:39, 9 січня 2007 | 512 × 512 (2 КБ) | wikimediacommons>Dbc334 | cleared and compressed |
Використання файлу
Така сторінка використовує цей файл:
