Данный код рисует некий фрактал.
int main() {
double a = 0.85, b = 0.9, k = 0.5, p = 7.7; // константы. При изменении их будет модифицироваться изображение
complex z;
int gd = DETECT, gm;
int i;
initgraph(&gd, &gm, "G:\\programs\\BC31\\BGI"); // инициализируем графику
z = 0;
for (i = 0; i <= 30000; i++) {
z = a + b * z * exp(complex(0, (k - p / (1 + abs(z * z))))); // формула, по которой рисуем
putpixel(real(z) * 180 + 240, imag(z) * 180 + 280, 14); // ставим точку на экране
}
getch(); // пауза для задержки изображения на экране
closegraph();
return 0;
}
Необходимо перевести в C#. Вот мои потуги. На данный момент есть ошибки. Никак не разберусь с этими комплексными числами.
private void MilkyMay()
{
double a = 0.85, b = 0.9, k = 0.5, p = 7.7; // константы. При изменении их будет модифицироваться изображение
int i;
milc = new Bitmap(pictureBox1.Width, pictureBox1.Height); // инициализируем графику
Complex z = 0;
Complex c;
for (i = 0; i <= 30000; i++)
{
z = a + b * z * Math.Exp(c = new Complex (0, (k - p / (1 + Math.Abs(z * z))))); // формула, по которой рисуем
milc.SetPixel(Convert.ToInt32(z.Real * 180 + 240), Convert.ToInt32(z.Imaginary * 180 + 280), Color.LawnGreen); // ставим точку на экране
}
pictureBox1.BackgroundImage = milc;
}
Сейчас ошибка только в Math.Abs(z * z)
,
Argument 1: cannot convert from 'System.Numerics.Complex' to 'sbyte'
но и во всем остальном я не сильно уверен.
Перевод верен, за исключением того, что для комплексных чисел нужно применять специальные методы находящиеся в структуре Complex, а именно:
Complex.Abs
- для получения модуля комплексной переменнойComplex.Exp
- для возведения экспоненты в комплексную степень.Кроме этого, нет нужды в переменной c
, которая нигде не используется.
В итоге все может выглядеть так:
z = a + b * z * Complex.Exp(new Complex(0, (k - p / (1 + Complex.Abs(z * z))))); // формула, по которой рисуем
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
как исправить ошибку ArgumentOutOfRangeException в строке
Есть таблица "kontr" с полями id,name,typeНа форме есть textbox на нем стоит автозаполнение из таблицы "kontr"
На англоязычной версии сайта нашел метод, который мне очень подходит:
Знатоки, может у Вас есть идеи, как реализовать это?