Перейти до вмісту

Крива Мінковського

Матеріал з Вікіпедії — вільної енциклопедії.
Побудова кривої Мінковського

Крива Мінковського (англ. Minkowski sausage, Minkowski curve) — геометричний фрактал, запропонований математиком Германом Мінковським (народився у передмісті Каунаса в Литві, що на той час були у складі Мінської губернії Російської імперії). Ініціатором фрактала є відрізок, а генератором ламана у вигляді «біполярного стрибка»[1][2].

Властивості

[ред. | ред. код]

Побудова

[ред. | ред. код]
Приклад алгоритму на PHP
<?php
    $i = 2;
    
    $image = imagecreatetruecolor(600, 400);
    imagefilledrectangle($image, 0, 0, imagesx($image) - 1, imagesy($image) - 1,
            imagecolorresolve($image, 255, 255, 255));
    $color = imagecolorresolve($image, 0, 0, 0);

    drawMinkowski($image, 0, imagesy($image) / 2, imagesx($image), imagesy($image) / 2, $i, $color);
    
    /**
     * Draws minkowski curve between two points.
     * @return void
     */
    function drawMinkowski($image, $xa, $ya, $xi, $yi, $i, $color) {
        if($i == 0)
            imageline($image, $xa, $ya, $xi, $yi, $color);
        else {
            //     C---D
            //     |   |
            // A---B   E   H---I
            //         |   |
            //         F---G
            
            $xb = $xa + ($xi - $xa) * 1/4;
            $yb = $ya + ($yi - $ya) * 1/4;

            $xe = $xa + ($xi - $xa) * 2/4;
            $ye = $ya + ($yi - $ya) * 2/4;
            
            $xh = $xa + ($xi - $xa) * 3/4;
            $yh = $ya + ($yi - $ya) * 3/4;

            $cos90 = 0;
            $sin90 = -1;
            $xc = $xb + ($xe - $xb) * $cos90 - $sin90 * ($ye - $yb);
            $yc = $yb + ($xe - $xb) * $sin90 + $cos90 * ($ye - $yb);

            $xd = $xc + ($xe - $xb);
            $yd = $yc + ($ye - $yb);
            
            $sin90 = 1;
            $xf = $xe + ($xh - $xe) * $cos90 - $sin90 * ($yh - $ye);
            $yf = $ye + ($xh - $xe) * $sin90 + $cos90 * ($yh - $ye);

            $xg = $xf + ($xh - $xe);
            $yg = $yf + ($yh - $ye);

            drawMinkowski($image, $xa, $ya, $xb, $yb, $i - 1, $color);
            drawMinkowski($image, $xb, $yb, $xc, $yc, $i - 1, $color);
            drawMinkowski($image, $xc, $yc, $xd, $yd, $i - 1, $color);
            drawMinkowski($image, $xd, $yd, $xe, $ye, $i - 1, $color);
            drawMinkowski($image, $xe, $ye, $xf, $yf, $i - 1, $color);
            drawMinkowski($image, $xf, $yf, $xg, $yg, $i - 1, $color);
            drawMinkowski($image, $xg, $yg, $xh, $yh, $i - 1, $color);
            drawMinkowski($image, $xh, $yh, $xi, $yi, $i - 1, $color);
        }
    }

    header('Content-type: image/png');
    imagepng($image);
    imagedestroy($image);
?>

Приклади використання

[ред. | ред. код]
Приклад фрактальної антени на основі хреста Мінковського[1][2][3]

На основі кривої Мінковського може бути реалізовано вібраторні або друковані конструкції фрактальних антен[1][2], які за своїми характеристиками є досить близькими до антен на основі кривої Гільберта[1].

Замкнена форма кривої Мінковського дозволяє отримати аналогічно сніжинці Коха так званий хрест Мінковського[1][2].

Див. також

[ред. | ред. код]

Примітки

[ред. | ред. код]
  1. 1 2 3 4 5 Слюсар, В. (2007). Фрактальные антенны. Принципиально новый тип «ломаных» антенн. Часть 2 (PDF). Электроника: наука, технология, бизнес. — 2007. — № 6. с. С. 85. Архів оригіналу (PDF) за 3 квітня 2018. Процитовано 6 травня 2020. {{cite web}}: |pages= має зайвий текст (довідка)
  2. 1 2 3 4 Вишневский В. М., Ляхов А. И., Портной С. Л., Шахнович И. В. Широкополосные беспроводные сети передачи информации. — М.: Техносфера. — 2005.- C. 498—569
  3. Cohen, Nathan (Літо 1995). Fractal antennas Part 1. Communication Quarterly[en]: 7—23.

Джерела

[ред. | ред. код]
  • Вишневский В. М., Ляхов А. И., Портной С. Л., Шахнович И. В. Широкополосные беспроводные сети передачи информации. — М.: Техносфера. — 2005.- C. 498 — 569.

Посилання

[ред. | ред. код]