/// <summary>
 /// Экземпляр класса FractalAssociationParametrs, который содержить данные о двухмерном фрактале.
 /// </summary>
 /// <param name="IterMatrix">Матрица итераций.</param>
 /// <param name="CreateDate">Дата когда был завершен фрактал.</param>
 /// <param name="CalculateTime">Время затраченное на вычисления фрактала.</param>
 /// <param name="IterCount">Количество итераций, при котором строитьс фрактал.</param>
 /// <param name="LeftEdge">Левая граница, наименьшая координата на псевдореальной оси абцисс в декартовой системе координат, укаживающая откуда на псевдореальной оси началась постройка фрактала.</param>
 /// <param name="RightEdge">Правая граница, наибольшая координата на псевдореальной оси абцисс в декартовой системе координат, укаживающая до куда по оси абцисс строиться фрактал.</param>
 /// <param name="TopEdge">Верхняя граница, наименьшая координат на псевдореальной оси ординат в декартовой системе координат, укаживающая откуда стоиться фрактал.</param>
 /// <param name="BottomEdge">Ближайшая граница, наименьшая координата на псевдореальной оси апликат в декартовой системе координат, укаживающая откуда строиться фрактал.</param>
 public FractalAssociationParametrs(ulong[][] IterMatrix, DateTime CreateDate, TimeSpan CalculateTime, ulong IterCount, BigRational LeftEdge, BigRational RightEdge, BigRational TopEdge, BigRational BottomEdge, FractalType FType, object Unique = null)
 {
     _fap_create_date              = CreateDate;
     _fap_calculating_time         = CalculateTime;
     _fap_iteration_count          = IterCount;
     _fap_left_edge                = LeftEdge;
     _fap_right_edge               = RightEdge;
     _fap_top_edge                 = TopEdge;
     _fap_bottom_edge              = BottomEdge;
     _fap_near_edge                = BigRational.Zero;
     _fap_far_edge                 = BigRational.Zero;
     _fap_aplicate_intervals_count = 0;
     _fap_2d_iterations_matrix     = IterMatrix;
     _fap_3d_segments_matrix       = null;
     _type_of_the_fractal          = FType;
     _unique_parameter             = Unique;
 }
        public override double[] GetDoubleFirstInserts(BigInteger[] args)
        {
            BigRational absciss_start = _2df_get_br_abciss_start(), absciss_interval = _2df_get_br_abciss_interval_length();

            BigRational[] be_Result = new BigRational[4];
            be_Result[0] = absciss_start + (absciss_interval * new BigRational(args[0], BigInteger.One));
            be_Result[1] = absciss_start + (absciss_interval * new BigRational(args[1], BigInteger.One));
            BigRational ordinate_start = _2df_get_br_ordinate_start(), ordinate_interval = _2df_get_br_ordinate_interval_length();

            be_Result[2] = ordinate_start + (ordinate_interval * new BigRational(args[2], BigInteger.One));
            be_Result[3] = ordinate_start + (ordinate_interval * new BigRational(args[3], BigInteger.One));
            double[] Result = new double[4];
            Result[0] = ((double)be_Result[0].Numerator) / ((double)be_Result[0].Denominator);
            Result[1] = ((double)be_Result[1].Numerator) / ((double)be_Result[1].Denominator);
            Result[2] = ((double)be_Result[2].Numerator) / ((double)be_Result[2].Denominator);
            Result[3] = ((double)be_Result[3].Numerator) / ((double)be_Result[3].Denominator);
            return(Result);
        }
 /// <summary>
 /// Конвертирует BigRational в double
 /// </summary>
 /// <param name="arg">BigRational для конвертации.</param>
 /// <returns>Число двойной точности представляющее BigRational.</returns>
 protected static double conver_to_double(BigRational arg)
 {
     return(((double)((long)arg.Numerator)) / (long)arg.Denominator);
 }
 protected BigRational _2df_get_br_ordinate_interval_length()
 {
     return(BigRational.Divide(BigRational.ConvertToBigRational(_2df_bottom_edge) - BigRational.ConvertToBigRational(_2df_top_edge), new BigRational(_2df_imagine_height)));
 }
 protected BigRational _2df_get_br_abciss_interval_length()
 {
     return(BigRational.Divide(BigRational.ConvertToBigRational(_2df_right_edge) - BigRational.ConvertToBigRational(_2df_left_edge), new BigRational(_2df_imagine_width)));
 }
Beispiel #6
0
 public BigComplex(long value)
 {
     Real    = new BigRational(value, 1);
     Imagine = BigRational.Zero;
 }
Beispiel #7
0
 public BigComplex(double Re, double Im)
 {
     Real    = BigRational.ConvertToBigRational(Re);
     Imagine = BigRational.ConvertToBigRational(Im);
 }
Beispiel #8
0
 public BigComplex(BigRational r, BigRational i)
 {
     Real    = r;
     Imagine = i;
 }
Beispiel #9
0
 public BigComplex()
 {
     Real = Imagine = BigRational.Zero;
 }