Лабораторная работа 1 - Разработка нового распределенного приложения для инструментария Alchemi

 

Заготовка кода для класса грид-потока ComplexThread


using System;

using System.Drawing;

using Alchemi.Core.Owner;

using MathTools;

 

/// <summary>

/// Грид-поток для вычисления отдельной части графика комплексной функции.

/// </summary>

[Serializable]

public class ComplexThread : GThread

{

    /// <summary>Ширина обрабатываемой части изображения в пикселях.</summary>

    private int width;

 

    /// <summary>Высота обрабатываемой части изображения в пикселях.</summary>

    private int height;

 

    /// <summary>Горизонтальный номер обрабатываемой части изображения.</summary>

    private int hornumber;

 

    /// <summary>Вертикальный номер обрабатываемой части изображения.</summary>

    private int vernumber;

 

    /// <summary>Минимальное значение аргумента x в обрабатываемой части области.</summary>

    private double xmin;

 

    /// <summary>Максимальное значение аргумента x в обрабатываемой части области.</summary>

    private double xmax;

 

    /// <summary>Минимальное значение аргумента y в обрабатываемой части области.</summary>

    private double ymin;

 

    /// <summary>Максимальное значение аргумента y в обрабатываемой части области.</summary>

    private double ymax;

 

    /// <summary>Комплексная функция для визуализации.</summary>

    private BaseFunction function;

 

    /// <summary>Насыщенность черного цвета в генерирумом изображении.</summary>

    private double white;

 

    /// <summary>Насыщенность белого цвета в генерирумом изображении.</summary>

    private double black;

 

    /// <summary>Точечный рисунок для хранения сгенерированной части изображения.</summary>

    private Bitmap image;

 

    /// <summary>

    /// Создает новый грид-поток для вычисления части графика.

    /// </summary>

    /// <param name="width">ширина части изображения</param>

    /// <param name="height">высота части изображения</param>

    /// <param name="hornumber">горизонтальный номер части изображения</param>

    /// <param name="vernumber">вертикальный номер части изображения</param>

    /// <param name="xmin">минимальное значение аргумента x в обрабатываемой области</param>

    /// <param name="xmax">максимальное значение аргумента x в обрабатываемой области</param>

    /// <param name="ymin">минимальное значение аргумента y в обрабатываемой области</param>

    /// <param name="ymax">максимальное значение аргумента y в обрабатываемой области</param>

    /// <param name="function">комплексная функция для визуализации</param>

    /// <param name="white">насыщенность белого цвета</param>

    /// <param name="black">насыщенность черного цвета</param>

    public ComplexThread(int width, int height, int hornumber, int vernumber,

                         double xmin, double xmax, double ymin, double ymax,

                         BaseFunction function, double white, double black)

    {

        ...

    }

 

    /// <summary>

    /// Основной метод. Обрабатывает часть графика комплексной функции.

    /// </summary>

    public override void Start()

    {

        ...

    }

 

    /// <summary>

    /// Вспомогательная функция. Определяет цвет, соответствующий

    /// заданному комплексному числу.

    /// </summary>

    /// <param name="value">комплексное число</param>

    /// <returns>цвет, соответствующий комплексному числу</returns>

    private Color CalcColor(Complex value)

    {

        ...

    }

 

    /// <summary>

    /// Вертикальный номер обрабатываемой части изображения.

    /// </summary>

    public int VerNumber

    {

        get

        {

            return vernumber;

        }

    }

   

    /// <summary>

    /// Горизонтальный номер обрабатываемой части изображения.

    /// </summary>

    public int HorNumber

    {

        get

        {

            return hornumber;

        }

    }

 

    /// <summary>

    /// Ширина обрабатываемой части изображения.

    /// </summary>

    public int Width

    {

        get

        {

            return width;

        }

    }

 

    /// <summary>

    /// Высота обрабатываемой части изображения.

    /// </summary>

    public int Height

    {

        get

        {

            return height;

        }

    }

 

    /// <summary>

    /// Изображение для хранения части графика.

    /// </summary>

    public Bitmap Image

    {

        get

        {

            return image;

        }

    }

}