Никита Залесов
Ученик
(210)
4 года назад
Я тут максимум на C#
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
namespace WinFormsTest
{
public partial class Form1 : Form
{
public Form1() {
InitializeComponent();
}
private void Form1_Paint(object sender, PaintEventArgs e) {
DrawCanto(e.Graphics, 100, 100, 200, 200);
}
public void DrawCanto(Graphics gfx, int ax, int ay, int bx, int by) {
Pen pen = new Pen(Color.Yellow, 1.5f);
int c = 10;
if ((bx - ax) < c) {
gfx.DrawLine(pen, ax, ay, bx, by);
} else {
int cx, cy, dx, dy;
gfx.DrawLine(pen, ax, ay, bx, by);
cx = ax + (bx - ax) / 3;
cy = ay + 50;
dx = bx - (bx - ax) / 3;
dy = by + 50;
ay += 50;
by += 50;
// Рекурсия
DrawCanto(gfx, ax, ay, cx, cy);
DrawCanto(gfx, dx, dy, bx, by);
}
}
}
}
В начале задаются коэффициенты и квадратичной функции y=ax^2+b. Далее разными цветами строятся графики для ситуаций:
a>0
a<0
a1>a
a1<a<0 и т. д
«Кубический» фрактал
Идея аналогична «квадратичного» фрактала, но в начале задается коэффициент кубической функции y=ax^3.